/*
    This file is part of Sylvan.
    Copyright (C) 2008-2018 Cute Chess authors
    Copyright (C) 2019 Wilbert Lee

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Sylvan.  If not, see <http://www.gnu.org/licenses/>.
*/

#include "westernzobrist.h"
#include <QMutexLocker>
#include "piece.h"


namespace Chess {

static const int T15[15] =
{
    0, 6, 2, 1, 5, 3, 4, 0, 13, 9, 8, 12, 10, 11, 7
};

static const unsigned char C90[90] =
{
    0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b,
    0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b,
    0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b,
    0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,
    0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b,
    0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b,
    0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b,
    0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab,
    0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb,
    0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb
};

const quint64 ZobristPlayer = 0xa0ce2af90c452f58;

const quint64 ZobristTable[14][256] =
{
    0x7130b4bd8f138026, 0x451a5f875056ae15, 0x9023211db6e216dd, 0x8176b9ab5178be31, 0x9ca65525fe49d1f0,
    0x64bfa2303868852b, 0xb91360d20127098e, 0x36150c526e1dd2f5, 0xd8bbfb8fcd6f735d, 0xa3b35e61d7da5068,
    0x46982bfdf96e1dcd, 0x012367021814ad81, 0x4089da4c1b9c5662, 0x42bbdb342f88a0d4, 0xc827e492d9ceb711,
    0x4e18fabbc55dbe46, 0xfb7a0b8ac6284121, 0xf179fc42457a105a, 0xf5a6cfa529c8d035, 0xed7626e641383689,
    0x3b8a9e8457e65e67, 0x674957c0d8ce647f, 0x7c4ce37b578f1a9b, 0x07f9d32932e1493b, 0xac776eb186fcc474,
    0x3fe8bf61b3d17258, 0x04b55a2fb8f42d93, 0xc0dd14998777ff0f, 0x6e4e1e15db62b600, 0x846ae109ae2c37b7,
    0x7093e9e05df029fb, 0xd3982b39a0fdb1c7, 0xbde6db97b7f5a17c, 0xc0eed455913adda6, 0x46947371fece7628,
    0x81aef4c1cc7a02cf, 0xc5c82e68e036a296, 0x7fa039ef30781817, 0xaae0e8deeff3f606, 0x1d0521c1e13b610e,
    0x69f10f80f4a40a00, 0x197fe1b1681516da, 0xcacfbc19e54ce37c, 0x233b0a0a4b37f1f9, 0xc90b6a25ffb22f73,
    0x7574fc9e93a8fbcf, 0x2a3a777d6f54ab13, 0x96920d6c2292f1ea, 0x25862c838d6591ef, 0xf6242fa4af008a5e,
    0xc8fcb0ce3bc170d8, 0x18d91dc3523b5fb1, 0xe118a157278e0a46, 0xef116c3273168425, 0x5f19d7cb03ca217f,
    0x44e11f566faf8769, 0xad2c7ba5f0a013d9, 0x7188039ca11f66f2, 0xb60bf14ef215b3ca, 0xeaf97c8185e0c08e,
    0xeaaf8d87b72defa2, 0x69cada520dbdfff2, 0xedba60006a42fe2a, 0x5cf499b4f530734d, 0xebd032ff7c032574,
    0xed0cefe2de548828, 0x63982b947c1044a4, 0x7e34a6bfaa97391b, 0x021de9e384dea780, 0xf0b240d20a7a3e21,
    0x9a6a479e6c2962f8, 0x443fba6fcfe3ac8a, 0x0b94ffd875ca1c18, 0xcb58573e538730e6, 0xd936caf0dc8eb6fd,
    0xdc5c557cb71f3c59, 0x79102f57cb1791b8, 0xb825ef53c44bb033, 0xafda588f7ea0af51, 0xc2b5f9c4e30b95cb,
    0x80a454caedf92144, 0xdce464932adf15e8, 0x37c78b2ed8c9a22f, 0x6f89f2dc6ecb7a3b, 0xc66174b2bdbac28c,
    0x0b5fece55e935cbe, 0x7f6d244689c750a1, 0xf6db5ce7369c13ee, 0x1dfe7be1079e5717, 0x3e8fd681c406383b,
    0x26c4afb21394b9d8, 0xcf2fc6c843bf9e29, 0xefeaf2c2c752af1e, 0xac072da2a15421e9, 0x9b88bce097f522d8,
    0xebd45c9ddd79f483, 0x944a0cb6ea118cd7, 0x2a2d9f08f4688fc3, 0x5b935e97509cf65a, 0xdf28d78e81335d7d,
    0xce54ac786e5569f5, 0x73bf3c535d72c7f1, 0xfbe4f2426cfbe0eb, 0x2175dfe5e3bca451, 0x4aa446981a35836d,
    0x391597228f7485b6, 0xdad29fd49fa7cd5a, 0x90c83e823daed609, 0xcae55b04a2616f7c, 0x97b7d80d98f6e3a8,
    0xbbdc533a45662552, 0x66558a90c4ee35d1, 0xa1710ea33bb6c1e7, 0x28b3a66776d9bf1f, 0xd3ac2058afd6fa44,
    0x75e9909b554c3c8f, 0x87519df971800282, 0x7e3d65d3834888f0, 0x32bc129fbdbbfa89, 0x93d99fe52a4a37b1,
    0x5f2a71e5fa4bf9f5, 0x0118deabf2cab75c, 0xe524b92b0ae556c5, 0xf6017b176bf8db47, 0xbf8cef69a56598bb,
    0xb6491634b1744d44, 0x1613d072e1bb7b8f, 0x1c48393ef0fddb53, 0x47312b801af3fc6c, 0x1d89cba1d23aaaa0,
    0xbd6ada8cf8674350, 0x152c541877b2e05d, 0x85997c0948ae573d, 0x610fdeece2659a30, 0x460566fd239e8469,
    0x3ad870ae78696b4b, 0xaa9c6ec2753a3dc6, 0xf71096789320d072, 0x5327fb17490c1f9a, 0xdd3fbf4552cafc71,
    0x47579f4dd4221f05, 0x8d93c8864b2ccfd4, 0xd395bbf07b5a72a0, 0xd5c21f99785d11e4, 0xf309d54dd472eaa0,
    0x510b1d7b92b4662c, 0x18cfcaddc9dcd31e, 0xa8d9266a96235115, 0x7e56238cc3f22970, 0x86334ff6eb3ab765,
    0x20fb95886ddb75bf, 0xc24cd15a9f5def9c, 0xe76db13580fb8c3b, 0x57bc1fb405af897c, 0x59f0ca8c1f7b659a,
    0xf06f06193b70af52, 0x09a2a61d94f9b4c2, 0x20393c4228a1c5ac, 0xfbf0b3a97c496fd6, 0x6ae149e1b8e081a3,
    0x6ae2a31d317e3cfc, 0x20dabc87f88ee2e6, 0xf283c6864964a78f, 0xd9602e474779a623, 0xe1993f7829fe40a2,
    0x4d6d0818b4572d85, 0x02010d007b4765f9, 0x171880531b8d5860, 0x957a1458a42becec, 0x6e226759d7cfa040,
    0xe03c160b0d306ac5, 0x3703d6f03c56e0f8, 0x75b40f5598eeda9b, 0x0fa29f77b672c261, 0x8edb5023922f80c2,
    0x95cc2da8df7d1dec, 0x070b750da000b638, 0xe1e38f29c032bf35, 0x6dd75e5089ce4ac5, 0x7db988b3d3b35634,
    0x445c2ccfa024fa9d, 0xde4a5149426caac5, 0xd4a088b2e2591ccb, 0xf9260f515c7bec95, 0x54051e52de03c1b2,
    0xa592ba34d6f9a7c4, 0x086e39a6f2ca055d, 0x47f9f977810a45b0, 0x2cb93a8143a3ef7a, 0x6e00f5059360e2c8,
    0x9e344875d6536b35, 0x44b0bdd03046755c, 0x8c3b984fda84bb4e, 0xe2591594ea2916be, 0x8ec32296b3886320,
    0x7d657d057beb8736, 0x3a80fea71258db6a, 0x9a200450904b8e99, 0xbb8cb47e59282224, 0x2d67375e4ccd7677,
    0xabba445d0e5e56a6, 0x3ba418e098c6584a, 0xea93c301ba87afe3, 0x1bd589ac92372907, 0xcbc7df3d935b4087,
    0x904d689b984c1cf6, 0x48025646359b3d40, 0x4bc51e890e7181d0, 0x5592cb241034e377, 0x6bb63dcc0319d264,
    0x63e7c742aca0c341, 0x826bf0e102605e56, 0x50d0c2231b2c1d51, 0xde0b7cc516e3b9b6, 0xaaa010d0dd6a4e35,
    0x9fd64cd35a469385, 0x28ad6ebf5db67222, 0x7235abc802ed5f5a, 0x8e61954d80469917, 0x6ea2cbdc5daabdca,
    0xc5dd713688f7192c, 0xf04902b8e0359041, 0x9073d9ca988d5d33, 0x574779548452f866, 0x1e98c0da4cdb082c,
    0xb4bdf7a2ebcd784e, 0x008de7cf00c67a09, 0x8b5d1c3c726d5000, 0x26fd82782bd1c0dd, 0xe4f1ad0e95465e12,
    0xd0dd76a8dc765970, 0xf5755359bdcd047a, 0x545a1cd1e52664bd, 0xb16e9726d3472fb8, 0xf5342d4d398633fc,
    0x01f5e0a47e506e06, 0xbddfa4284ffb5311, 0xce7d3cac503d553c, 0x9bdf9dc98b5099a1, 0x4d7db1040b5e997a,
    0x5d3d05d360e35524, 0x337ba8bc212c7be1, 0x86a62b460947e29a, 0x3d513d5ca88eefe1, 0x29a0cce9f41c1cd5,
    0x197fd26418a34ee2, 0x326f3b949b426c85, 0x3e4e91ea83647d53, 0xcfa3e8fd16681952, 0x59bdef07e7cd5168,
    0x341025521d64c7d1, 0xceeaf8f1c434ab08, 0x409c4fdf6688e61f, 0x643ab4959fa3cdbd, 0x58c41b99a5ab395a,
    0xf0b655b8d42a00a9, 0xabd7437ec956585b, 0x3f42808b843f0dc0, 0xe0c928421512b453, 0x85e82cd69a61c0e7,
    0x0c3c34cd0a7dee44, 0xa82b08ccc44bd09a, 0xe2a835b21e653066, 0x077406cf9230f54f, 0x1cd68cb8e3d724f9,
    0x85daeb464697b1b0, 0x7da2593f4ca08018, 0x8825ea023c853d5d, 0xeec8f4378562f880, 0x059ac163dfc9f4da,
    0xf9c81f2073038b6f, 0x314738e40e6974d0, 0x8327245d17df9208, 0x02ad6c54622eebd2, 0x3c3768ed10b692d8,
    0x2d4a31901ea2053e, 0x433957859408e871, 0xf1307f2059af68f0, 0xfe02dfafd2155e43, 0x5cffdba1747776e9,
    0xc9a5848e286d570b, 0xbcc49b8de5def315, 0xbc3f0a86f9987c91, 0xfbd32161f98d94d2, 0x27031d1d87ebee9c,
    0x137ea6d6042f2ee6, 0x7fba0ad49a60f731, 0xbf8e614730f0380c, 0xa45457fedac904a5, 0xed9f8b297c43b13c,
    0xa2d9cf016e619e07, 0xe82794bdf52d8e54, 0x8de9c087ec7044e6, 0x5a950b05805f2ed9, 0x6421fccbf228cf8e,
    0xdc1439499f9befdf, 0x692c94144fc54921, 0x13c21b59b3fb3d5c, 0x0be3042a904a613f, 0x05a6b8ef1aba9873,
    0xafd0468d5425fb1c, 0xed8f697bea759978, 0xe390dbbc06690c31, 0x7df25ef2c1b3d7bb, 0x72ee3703c4fe44eb,
    0x274421ee4fe5a662, 0x1540b7c94de20203, 0xb9b835e58eff0cd5, 0x30874d584e06536d, 0x12263cf38e0b9a89,
    0x51cffcd4b2168df8, 0x74db1c017c23812d, 0x9def49f43e19ef14, 0x106285f49f650d8a, 0x7432febd1e556661,
    0x70dc8ad69498f68f, 0xf19e609342b42eea, 0xb43e22b4625cdb64, 0x606aed6d8d629241, 0x12e0ff48ddc8fc78,
    0xaeec871c960889d2, 0x200e4f561e9d90e9, 0xc4a4c01f24a7072c, 0x45bc5edc5634e0ae, 0x0e33718af9bd0a0d,
    0x8f78d4320e85d575, 0xdaffa02864f5e370, 0xec86c7522db34f12, 0xd3d923e5f844a6fd, 0xfa7d0a7a1eb505e4,
    0x027b6460baf76879, 0x2a38e595f8d474b2, 0xa0c2f34bc6d8892f, 0xdac414aeb5c574be, 0xfd8efe0f19341970,
    0x8ad040fa4163ba22, 0xaeaf1f094212bc94, 0x33b8ffe4761403b6, 0x9ce6c86ce5be2223, 0x727c17c73609e90d,
    0x62f7dac41f27950f, 0xf5ea32d84bbc8a53, 0xf4cbbbb5657bea2a, 0x0f517a14db0e5108, 0xca3e12b18bc14936,
    0xfe30dfd5b8a4bdee, 0xe3b114c76f0f7848, 0xc2081ff9fe39bfa8, 0x377b82e296760752, 0x99221e6a70af8edd,
    0xa86b92570f640a10, 0x9a3e88088fd8dfd5, 0x18fd2a9a59e788a9, 0x9b4761ebf8122eef, 0xce8f38ad29d683c9,
    0x0ac79b1ba2db545f, 0x0dc614b7c478e6fe, 0xa69f31cd15c23518, 0xcf769cf9bdff1c95, 0xa27ce272f619a1cf,
    0xedd97e2ff6a93857, 0x8de4d8c20c0a926e, 0x1e7089339d1beace, 0x4e1dcd2008b63b80, 0x4fedd394920f34fe,
    0x5e218fb6693c4c55, 0x8e97598b791934b2, 0x0fb211c4db9c47ef, 0x8f06aeafb2f1ebcb, 0xaf04f990627f2ff7,
    0x38cec469d73ea940, 0xdff6c99ee2257050, 0x6a77cd2aee82c8a2, 0xf28554c80ac672f9, 0x406aee0390776562,
    0xa653b1e543dacf62, 0xc2cf09484fb7f138, 0xe44857cb17e0f569, 0xacfe5877a93ae94d, 0x6bd6b075b1555386,
    0x5e274dadacc63c1c, 0x51537d31c7ab98fb, 0xa7d0f1826b19e227, 0xb5b888d02e42a80b, 0x86632d398f3b45f3,
    0xa88454c497646176, 0x237e0ebd89e4ebe8, 0xbbea1e661284f9cd, 0x1bce97f0c8b76903, 0x4c517e505f19d26a,
    0x9c3b79717e79af83, 0xb827b135e474aaff, 0x0eaa55f3ee469af4, 0x6652634b833f3e24, 0xa7473af5a12b8146,
    0xf21671b7ce444a46, 0x0a1de189d45d74d4, 0xe510f44c4e5ef9e4, 0x2ffeeaa2adcc6380, 0x54e8791c10816108,
    0xa3122938856ee959, 0xf4a0df4c24ea2b4e, 0x791dae527b579162, 0x730962d6f3b66d04, 0xb57432ee8d29ed6c,
    0xba80a3bd252ca320, 0xc0a2ae71513df629, 0xb453147d5b2c9923, 0x225f093a925116e3, 0x6542396f255e7924,
    0x2cdfce9fa44bb47a, 0xc34970f43acf098f, 0xe9aeeb95d937f58f, 0x687b4f4521d5dd65, 0x01300be22536a20e,
    0xe5dfc3e9922c4f02, 0x717b6abce8d6aa77, 0xe57db6ba0d58d2a6, 0x60d651626ac55b90, 0xd64502a5ee95d561,
    0xb5fa2a17ec8c0164, 0xc9582135958fc611, 0xee8344c1e19954c4, 0x7837cf255667618b, 0xc448cf344c71909f,
    0x109ec4308d96b82d, 0x3f04baf84b9a88ea, 0xbf639a875f62f26c, 0x7aa0384d965722f7, 0x197b692b50b16b14,
    0x6d9af6c73900af62, 0x1344b3ca12371956, 0x806e82e6b15e7006, 0xb485fe720f18c9e3, 0xe87881b804fc9892,
    0xb514ffd89d201d92, 0xb0da1b717631e6b5, 0xbce52db116f37d72, 0xf3e7e0b0c0031705, 0xc44047e6f7a8ff33,
    0x6a2b3f09e5e20dff, 0xd8376d5b4b60e246, 0xea9a751191b618d6, 0x85e15b1ef98b2d2b, 0x5c9f283d995ebff4,
    0x46c291de5bb153c4, 0x399e0b67fc70554d, 0xbbc5509ec6b802a2, 0x5b232fe5e38ec2fe, 0xc46c93a6ecb300a8,
    0x0e7d08ad8c6c32c9, 0xef7946c452725f83, 0x5875bb0ec00c0569, 0xc2fcaef70627bcb7, 0x1603571cdc91c8de,
    0x7dde8ccb1b957059, 0x9331def3087dff1e, 0x0e23128af65503b2, 0x422da38e3add22c0, 0xf7c673b863f5f95a,
    0x1b41b4020a90fdaf, 0x51c9a20d3db6a18b, 0xa5c02c6a966ba5e1, 0xa417b39904e238c1, 0x9338c0fb38935e99,
    0x532ce15bf4cfb3dc, 0xec04532d412240d6, 0x27fa420ea2c7b462, 0x181677150eae7bc7, 0x553bed9ebe1e7896,
    0x5b2fd1742efbc680, 0x418ca72b61f20679, 0xf1f0683866be4e53, 0xd8c0f92a762c1df7, 0x67f3229fbcee1969,
    0x099f4da05e6dfdc4, 0x3805504714cf8b92, 0x80d22f3733c207bf, 0xb8afc305a9790b6d, 0xa8f9fb39c90aa4d2,
    0xbab73a768636c050, 0xcc0a34644a373da4, 0x8ed715b148cd959b, 0x55a80eac2b7d849b, 0x8dee3bb83d4aae58,
    0xbb07e90edfe6f703, 0xc4f051b49e974c5b, 0x24ccafb135a33651, 0x06626b3223bef039, 0xb4b82274cabef7da,
    0x57c76808a76733d2, 0x557fee74d5e09877, 0x544f71c8cd9e2745, 0x20e51fab44f3b2f3, 0x8943a2ff3bc05883,
    0x91327f52fea5bb31, 0x5e0df9b866e337db, 0x598f2f63abd2e563, 0x0365f043d6bc5038, 0x461a8fe29b10d7dc,
    0x3516573be5b357e7, 0x3b8deb7f1ab21f34, 0x69ef366cea5a8721, 0xd828e25554ade7de, 0x67ebb3483b39f3a8,
    0xd6f7df759404ed5f, 0x212f071b4b677d3b, 0xdd046c22ac5aaec0, 0xfb6e1153dd1e2cb2, 0x97d35e894a8c98fe,
    0x087a6ead9f06d7f4, 0x3f8ee504c8484b7b, 0x0e149930e1a2f734, 0x678f3eccfca9afc0, 0x7ec9927f53dd6c0e,
    0xcf722347391ca511, 0xbf909df5085b997c, 0x2fc2ddf6f3d0499e, 0x5fff5ebad0dd23c2, 0x293372619835465d,
    0x9f57aaf3298911b9, 0xaeb705081a173fcd, 0xe156d4ba23ace526, 0x3b50e0e6c107fd2c, 0xcc966fc46612a601,
    0x16364fc077ecc8f4, 0x6b7a9af718b2dcd1, 0x54e5f2c147a6508e, 0x5a0ad4605220a294, 0x45256ce34be5ae9f,
    0xc8c29f8dc6bed0be, 0x9256d4beae5ea267, 0xa046ae47b4550a60, 0xd4641c4cceb20ff5, 0xa61b2e4d3854df6f,
    0xd4865e6ebc7e904a, 0x20da3fbb53a7bdc5, 0x6774ffd7552ee5a7, 0xad132b56fc964f54, 0x6711bf4f78356788,
    0x24e69a066dde5b9b, 0xf96ee40fa2943b2a, 0xb592d351c9cb526c, 0xd2152449a594c085, 0xd9984bd710a76073,
    0x36b4d5ba5cce5126, 0x35b99229fb8f622a, 0x9bf8927eccb2954c, 0x750a14a82f53481b, 0x8bf66928f4e81d2f,
    0x6e657161d698179b, 0xd7c3a46668eee763, 0xb60e8638af30b565, 0x5af8a85ef5a2dab3, 0x7ae0eef45c21a3c6,
    0x247aa638834fc8e1, 0xd963ad160483642a, 0x9da66d060a24a134, 0xe239bdc416f74c54, 0x8a033eae9a075cbf,
    0x16cc89355a20e98b, 0x97e8bb34eeccb3b9, 0xb0bf009d6c1d9072, 0x880fc10cd715a26c, 0xd0946f9a9da78677,
    0x90c74201de237d80, 0x9828a0c7591dd9f4, 0xe395b5817809a0a5, 0xc7f8be13aa5d1073, 0xe35176e9abed6ff6,
    0x6ce4712469ee5ebc, 0x574834d0a8e2c384, 0x40fbba002ca43496, 0x3fcdf103605e35e9, 0x2f0dfee4107c165b,
    0x239da452341381d8, 0xa81f632b381798d4, 0xadb419068568effd, 0x558bc0c2a7d867f7, 0x52dc6f3dc9a41db5,
    0x448773b36a459f7e, 0x56ebd31f3832ee5e, 0x69d785db8cfc746d, 0xcdae6a497f74144d, 0xe904160454095107,
    0x5cd6579330a59bb5, 0x8aea9509973a20b8, 0xa4be1e940c9b10fe, 0x1e8429e083833009, 0x2f9e9f3691208d5d,
    0x75d61dd81a41c493, 0x8bdb28e4e1ed77ad, 0x0a704178e8b6fb88, 0xc85218b2b04becd8, 0x3a808c043bcca15b,
    0xbb26aa37219ada54, 0x4b6caf966ebf2377, 0x1e40cb982f082e7d, 0xcb0cbe8cc6e98537, 0x62c8169757f2edd7,
    0xbf044fd343ae7379, 0x08265e464c84c974, 0xec67f355c6e3be7b, 0x05a8bf507746521c, 0xcabaa1e3a903b7eb,
    0xc199639f0a6d64e6, 0xe680c85653cd434b, 0x87b9656878e9415c, 0xeb06c0eec6c86120, 0x4545e58c133d2e6e,
    0x6aa5835bdaaab17d, 0x843eb16de5557ab4, 0x92b5cff85b46e8ec, 0x246bd153f4b3cdd3, 0xce8aa159cb3d0ac2,
    0x78a49d94a5697c01, 0xbd3504584166fe64, 0x2c289abea06329fa, 0xa278fe4bb569d106, 0x385c0f22decfdeeb,
    0xfe44c745a7a73be5, 0x5107bb0bc463f317, 0x9124d6a54045e715, 0xe63eec2dfd7c6d40, 0xb192b76d71b6eb54,
    0x615a80b62e26a624, 0xefabd35404c0d980, 0x87fc8aa76c504084, 0x94bc639d5eae9ca6, 0xc6d9950989667d95,
    0x9c3c215075ecf3c0, 0xe00e45ba9edd00c7, 0x8e3a077c2ded92a0, 0x180c6c876d39034a, 0xb1e265bd20eac59a,
    0x02b45678ee4416b8, 0x3bb043529c90c9e1, 0x21fa671c4945b7c6, 0x80008f9b2e71fcc3, 0x82799cd6ab3a64f8,
    0x1a2b97e4758c9e1e, 0x8aa35524650f829f, 0xcbebd8076ffc36c5, 0x98c055f927295cb1, 0xe2c23f594e6a51ad,
    0x64bf6640836f6037, 0x2b33d20ee28f2f21, 0x66d74cd256720168, 0xae1eac36aa9dfb46, 0x2548d6fbdc1f80aa,
    0x3d111b0cb124edb7, 0x5415a20f4dd03010, 0x0972a7671f829e07, 0x934aa23fbd72cc08, 0xc17acc9de0b7d964,
    0x257f7853fcd7bd60, 0x9f51165472f56fb7, 0xe27b0b998821ffc5, 0x2466011fefecd2eb, 0x837221c7e79bbf67,
    0x2ef0a2110e8b114c, 0x311a87501740596f, 0x9bac4bc3545abc17, 0xd9d9bbf5416d165f, 0xa456c8904170bdb0,
    0xb99cd546c64f029f, 0x3e19552c5f768f1f, 0xd76c36f3eac008bf, 0x0be9b0ef2adfb2c0, 0xe099d3b5276bb233,
    0x62221da3b51eea4a, 0xa86ed4e6b4290695, 0xc3eacbcd8739d897, 0xef853ea99ba436bb, 0x1ac355d75dc033d5,
    0x21825ec968846814, 0xc65998b8b9c4eb0b, 0x94afc15f5f69de31, 0xf1080f2c5e25ba12, 0x06f79b8c40333b69,
    0x2dbe19a10d01a975, 0xf90fce647d1feeee, 0xc0b7d49e9edf73d3, 0x752be6837f80f5d4, 0xcf5acd66c3a9d0b6,
    0x6450a38c37d125da, 0x86ad0d334d4c4507, 0xc66db22062239bf5, 0x3d485a707445e378, 0xcfacaeb72000ede4,
    0x975438f880456ba3, 0x3ae8d40255dfb564, 0x7af66254096884b2, 0xd00c9865e49b44b3, 0x5bd1e997ca6778c4,
    0xdf1b075126479f85, 0xb697c791a08b6870, 0x57f0891f1209809c, 0xfc51277583fcfa13, 0xf551026b5b9e139b,
    0xc1f3de5b21841ed2, 0x79a08ea3d1636bd4, 0x15fa4462b687376a, 0x6eaa4ce26edbf41b, 0x7d21516cc8a2bd52,
    0xea24b5f5d9bf68e7, 0xc3114cddf3ea28b6, 0x9825b2c894cab544, 0xbda8f3f7fd69aa4c, 0x3d85ff2aa5a61469,
    0xb3bc58e48335081d, 0xf836424cc24ff4ee, 0xc48fc99a2fe70eb9, 0x0cd680125ea617ed, 0xedf22d536d0d2462,
    0x215fd0a92bc595a0, 0xadca3d6756b0b23b, 0x5e829aab51032234, 0x53108ed7d1b5d786, 0x465ab35de184f0e6,
    0x1b955103077c4560, 0x91685c689987b8a8, 0xa19b577112bdc5b0, 0x04412ac0cb81f4e2, 0x183a9cc8045a5e20,
    0x2338eb44df7ad60a, 0x31a20f803a46c84f, 0x4f436ad8a60f4122, 0x00b9ca0277902aa9, 0x72a0b5a98cad8a67,
    0x824f5b6aa9efa97f, 0xd6643f8981c316b2, 0xe2dba038b8121e5c, 0x55b7ca2255b09051, 0x271e7ec9bb5f13aa,
    0x3abd19142874af72, 0x912c0e83909c1d18, 0x153acbe2c4238b4d, 0x4b3ac62c9c6ed971, 0x7ecb7de0e960d0aa,
    0x275d29f8e36d68b8, 0xd50aa91bd5296388, 0xe985b86950f1f9cb, 0x9a448e9dae6bacdd, 0x01914a2324a154d9,
    0xea76281fddf872cf, 0xffc5207d2422046c, 0xe6f259aa1c8368dc, 0x210ddc8a452b04de, 0xc8c97057488c76bf,
    0xbb7a70fdf3a9c269, 0x13178ad6611ed81c, 0xa0d5384e886cb836, 0xb4a70407da7b7c3a, 0xd6e0521ade4b471a,
    0x9ddc946daee4c44a, 0x84aa4acede74e8dd, 0xa6a86fe717e2b81a, 0xd491db2e002d4d40, 0xba43fe950b69541d,
    0x34f9e6647cd4c022, 0xadc60580747e012a, 0x405888dd46c40469, 0x1d2679f87012656d, 0xf22e2c29901da5a9,
    0x0a08856a64d75f53, 0x03a350ca865bb292, 0xb2b822c5a0186e82, 0xb1e859d43ff96cb1, 0xe0006e4b01966414,
    0x342483d5db41ce0c, 0x4014b0fc75a9baaf, 0xa0a3749e1fe3e398, 0xed8735ad8ef74035, 0x0b191fecc08f73a2,
    0x7d536308882b961f, 0x4a3f7a3e4684c99d, 0x00479fa69a58cabd, 0x9bb5e26da6935cf9, 0x3ca49fb0ed9cbcf0,
    0xe3f290f1e5ad6ee6, 0x668e5a4a3ff16d22, 0x273f9c16b2dbbb38, 0xcaf51c537915217f, 0x6a24ff949ceb82c3,
    0xcae1f1ef4a9e28c0, 0x95483787f3e099e9, 0x4e9bc472786cde04, 0x3cb266cae0cbd432, 0xe2e40346bfd7298e,
    0xae961353b24eae20, 0xa08d4f9112f8e560, 0xcc152439b0ac08a3, 0x51f9c03dc9c01a0c, 0xd131e0a029ee35db,
    0x1498c2618b6f4733, 0x71f878d0353b0cff, 0x183bacb6115b2c81, 0x2c1de757d4304baa, 0x4d2c684106ea9b32,
    0x57b2db20418ec4e4, 0xde2ea8083adb0d64, 0x0933c0eb4e575291, 0x7f222204db0a67b8, 0xa528aec950e03c34,
    0xe5c4485956133319, 0xa3ab6aa0c541de2b, 0x1213b717c533979c, 0x3a9709ee3ae5dece, 0xe123fcc1350cbede,
    0x21c9207730d33b11, 0x81b745e74cf65344, 0x3fc581bff8cafa9c, 0x87ba1b3dbab5e305, 0x20350194c8ff7b7b,
    0xdcc4609f738cd0f7, 0xfb218717b4cc8fce, 0x4a11cf7893b50264, 0x85780f4a7e732c25, 0xa5dff339327e7078,
    0xab400c1dfe73b366, 0x5cf50f5d2b5c7d0b, 0x1c23c7a2e0de9575, 0x9310bfd66b61b5d1, 0x25489c041d6b07f6,
    0x0c54ea7b8eb75e36, 0xaa206c84fce12cdc, 0x603c2e6f4abef76e, 0xd2c79dce1cfe10a6, 0xfe7a593f8fc15f83,
    0x23a378635b901a7a, 0x712b1cd00010536c, 0xd168ab2a8a30e27a, 0x77fe60f41ab5f566, 0x304d717f6da2f706,
    0xa7950be44ce5c030, 0xbf19f45cbe7877d3, 0x690b31994f8258da, 0x20f1dcb78c3ca5ee, 0xf9b677558d274c3c,
    0x35155a33f117aa34, 0x0463f288d157c25a, 0x4c8440eb5956efbc, 0x7debb4777a74e13f, 0xcc53d716a9181647,
    0xc8b5a2eb9e5dca11, 0x32afbbea29c8c0ba, 0xc7d665844ca91e6c, 0xade8001949e46e20, 0xacafa2fde184a14e,
    0x1a94d9f442f5afd6, 0x3b89fe2c397d1e0e, 0x79c03729d4807dc2, 0x76640b24d075993b, 0xcc3030cd961231c8,
    0xf33f066ef548ba59, 0xe650f745d76565e1, 0x4e7045d3c7a72acf, 0x2ae92f5d43121c73, 0x8c11d8cbf6e4a584,
    0x93a853c5a6fb50e7, 0x376d5140f68cf402, 0x7fc8a2decd305e8a, 0xb644c8bd20ac6916, 0xe466f3b458b2263a,
    0x2a28dde90deade41, 0x49d682a38b190f75, 0x3d8e6e8510a0a07e, 0x57242239dabe7fbd, 0xdf24cee742476222,
    0x132143633cb53b74, 0x85ecc54bb9aa82e7, 0xd2b73d12226ee596, 0xf5e0f118147d9c5a, 0x60ebe31c90919002,
    0x6182d88ac7fb104a, 0xffea5a178b291430, 0x926a4e0e726da7ec, 0xed84ae8842ec4c7d, 0x1bfc4dcbf28e75c6,
    0x23154cdbe005d081, 0x61b4afd921d071a4, 0xc2437117a05c1b04, 0x7ffaa7b53bcd7d2d, 0xf01fa550ea050e8d,
    0xdd3a7a97c727f8c5, 0x202ff086161c35a2, 0x63098f64c3519be0, 0x8b6b9080fcee6e2c, 0x8e64f0e0bad3b0ff,
    0xfdd124fbd9f47baa, 0xfc9a8120eac4f4de, 0x4227b4589cc5520a, 0x4a3dc7f3be4179a5, 0x98a2aebc93c45b62,
    0xa48ae951efe36219, 0xec8a8f8035e814ed, 0x95e6a0c1033d5e1d, 0xb0b41a6a52adb3e5, 0xbdaf0ed0fd9f5909,
    0xf474564301c7213b, 0xcc5a0abdd7671398, 0x0ceed4d537de1343, 0x58e79783d661be84, 0x82f9b58a523eeebd,
    0x25f38588e5c2e805, 0x0e855f5ce0f874eb, 0xe53d644bd96dfdcd, 0x4f5614e51d91aa9e, 0x7a40e65fe0689640,
    0x920905e1fc1de44c, 0x3986f140455ff6ec, 0xc1c660a105050db8, 0x0c99d664045b3390, 0x14a8e7460f9ba7b8,
    0xdc13773e39d2983e, 0xd4cbd4f4f016a510, 0xec00ceb009762a51, 0xbc18717e5f315789, 0x44e0fbc21a20374e,
    0x77553337365a10a0, 0x46cbe73bf081f5ef, 0x879d223238fb8588, 0x2ed76c189342fce4, 0x6a52fa2931f17c56,
    0xaa94dd9201639414, 0x08c66cee5400588b, 0xa48e50d8a6d8f85c, 0x6c308a4fb4a6d75a, 0x10f12855eb725f23,
    0x0a4af7e54a54c05e, 0xad1836b1bd44ae3a, 0x2cb78f5a79a68d95, 0x9173fc9659e5c5e5, 0x538f503fd8ec25e5,
    0xe557d988a0f0b5fc, 0xdbd9b79f0ddbc770, 0x197539f52e6a1483, 0xaf5546fdeefdbb80, 0x7a5ccee4a4b0bb30,
    0x4de3f2a108e673da, 0xf222629a33d342b5, 0xd4119768b71151af, 0xc1473cabd74275c7, 0x37987fab50b6a08e,
    0x1557f3f97aeafb39, 0x846a681263a753f8, 0xf135393105f16da9, 0x7cb14577c1c96493, 0x29c08567b365d088,
    0xf65e476829855207, 0x2bb66190b0589d8b, 0x334afbeab5fde105, 0x06be417fb2f4d2c6, 0x579274d2719cb915,
    0xa849635cef43c8fe, 0x76b6c0d944131c14, 0xd89b3f56bc77faf8, 0x4d4917666c97a18b, 0x4f5fc69b30b119c9,
    0xdc35c0e4b1c0ba4a, 0x45815081b94d1f7a, 0xb6803326d20254e8, 0x896a95118af5d879, 0x541aad61b2715a13,
    0xebbba8eb36c6e5b0, 0xaeb7fdd53512efe0, 0xbe6eabe388fbd437, 0x39d468522c9a1578, 0x59be957699b964fc,
    0xc7e10451f916c4c7, 0x9aa1b47ef1a7cddb, 0x7d613f6ddfba6e2b, 0x8877e676da316ef2, 0x39f3618e4f7a622f,
    0x248e51d7ec59fa3f, 0xd8a85f3c24eea7ca, 0x086822f2794230c8, 0xaeacd80d8973e1ce, 0x3940bef8448d6fd6,
    0x5b3d573be430545d, 0x2a0269b842f92211, 0x67f6cef5674be3a2, 0x8afacbdaae9e937e, 0x5f09d81d782c1722,
    0x51d4f5458e70f4ac, 0xe775c3ae6f4ad959, 0xf6f195978faa5893, 0xd060650adabee18b, 0x60f9e77a8e0179f8,
    0xd5bf7116b63f05eb, 0x0e90a6e36a906846, 0xcbf78101940b2e85, 0x924ff21ea192314a, 0x5fb8fd40e3a9d58b,
    0xc8c77ddab415842e, 0x1d4ad13ac639fffc, 0x24f9e1363d0e73a1, 0x589d8ec71b86f1be, 0x47dd041ef026381d,
    0x3fe6bda50fce229c, 0x54a8bc27d4f3f099, 0xe72d7aaa97b735ca, 0xb84d56449a372f35, 0x4e1a886cdea27bdb,
    0xb82a42b0a307709f, 0x2c83abc55b0de752, 0xe52d278efac9c03c, 0x2f930595ad80e635, 0x56c37aa975251064,
    0xdb1514ca87f45740, 0x26971efdac0a852d, 0x025ccba2c6605fb7, 0x5ccf739c18356995, 0x8c56cdd844b9cee4,
    0xd69f5aa9ef969210, 0x50cea651833a0ec0, 0xa028f5281139dcc9, 0xbb8c6e98777aed5c, 0x9150f672d75b9f0d,
    0x3edce4602787e104, 0xccda3d38368470bc, 0x343ea5f0c3ab5934, 0x6c31c2fba39a39bc, 0xa15289684c59c8d2,
    0x9a9603061b04fabb, 0x4ada004513406a4f, 0x09cfa9f69808d1c0, 0xd974dcc839155c98, 0xe37803f15dbf8461,
    0x0df53d47957b3006, 0x05d3ccc4aa14b496, 0x478d9e9aa2cadca5, 0xac8caf224f5ca281, 0x86bf665a7d53778f,
    0x6e209a5fca434ca7, 0x3edd3bc0ac31632f, 0xe8a2b500ffd83164, 0x1717067f697eb6a2, 0x7574c99aaab6b7a5,
    0xbd7589f9e0414296, 0x95e2cf786658aa35, 0xabc854dac01cfe58, 0x341954aac4cd0815, 0x027ca50f016c55e8,
    0x3eb0a80d351e05ba, 0xd17372c328025a54, 0xb314c3087fe44629, 0xa556d608e77ac7a6, 0x8e5330c10b93e046,
    0x429b0e62699fc026, 0x06685e98fb3b03d2, 0xf838fd7a860212c6, 0x71e4f4c99884d2ec, 0xed5baae7218ef2ec,
    0xe2d4212d9cf31813, 0x08a3c9dad580c1fa, 0xb60cf612de69b5f6, 0x17489f45ceb8ff3c, 0xa3a4374fe833d599,
    0x2845f2ebb917b130, 0x99fedc96abe04096, 0x1df3ec88e624b33f, 0x9d04255ebc6ad089, 0xf0c603345ae4d55b,
    0xa8438c807a38b9dd, 0x2a9c1cb2f65eb720, 0x3f5c4bfaffaf079a, 0xecf5e88a98fc4e71, 0xbdca0821c4292eea,
    0xa782cb2e848129a5, 0x783638c556440464, 0x09ecf4ab3d0347b6, 0x3fbf52b946a06264, 0xad6b67d06ce2651c,
    0x0528606a6938c6f8, 0xca8a26e21869ea39, 0x58af39057db7692a, 0xd7c175677159d07a, 0x854c2f005e2b90b1,
    0xdfdee7c57f42e59d, 0x6d6cd4aa8fc3284a, 0x15e714de3f2e60bf, 0xbdb8cbb3422ce24b, 0x9101cffcfbc2531a,
    0x02430f68b886a831, 0x682b7deb969dae9d, 0xfd88dcc349bec133, 0x54c8831b3453f6c4, 0x70ed3b1ea684f122,
    0x5ee99654de07c45a, 0x35e628d027f9981f, 0x77eaf786de54a30c, 0xb7d723a05c7364eb, 0x2a4ea8bccab707f3,
    0x529f0276deccc6df, 0xc20d1474776fc285, 0xf3262f5b88cbc9d3, 0x41486c06694d6583, 0x87c1db3f8a5fb573,
    0xb4321eed5f974be9, 0xa80953cda57d7ad8, 0x4e1bfc44efca1de5, 0x40c24ad8c996fe5f, 0x83165eeacd9ba45c,
    0xb2d1d2c611bff118, 0x3723963d63385d96, 0xf5a587a5c5b2043c, 0xd7f2157e386b33f1, 0x2053c57ef8051a8d,
    0x123616777af47fdd, 0xd2b6bd9bbb110690, 0x5a242d096ee6306c, 0xc30eca7eb20b31fe, 0xb9350cddcb9a222f,
    0x4743806c451489e0, 0xac445c88b85c6247, 0xec9dbb4fbd0e0c32, 0x3e42e5f0638d6bce, 0x27e0a606cf212704,
    0x2f1da6eb37a6e7f9, 0x5bf03f0330198e68, 0x6621fa8463212db1, 0x38b686616cbe95bb, 0x5510ef7c6ae03b73,
    0xd8ca5e88067d4205, 0xa73a67157a66bea9, 0xdc556d97bade0680, 0x285fcc5c81c07deb, 0x0d0dafceb059b98d,
    0x63c97ba69693b7c2, 0xdb91fd578c381f9d, 0x2ede500aa4954dde, 0x14499cbdfb593ad6, 0x6db72534690d74e8,
    0x72ea2a9f02d2317f, 0xcd8e52fba5deab52, 0xa2137af8c57b6279, 0xfa9561b3d2127dcd, 0x99f174c7989c764a,
    0xa6a176457885ae59, 0x27a7b9734c0bb489, 0xf6465fa4d905bb07, 0x214522e4393870ad, 0xb463885664b813dc,
    0x295218d708b04e88, 0x8aca5a337c579b7e, 0x1b89446e2ed73df8, 0xab8da4bf95646497, 0x9c1dd3b82e9f2e98,
    0xebb752e703100e06, 0x0decc242443e6f6d, 0xf780180cf84dba60, 0xec4eab9ab9ecc3ef, 0xebd6b9e619f97349,
    0x1cb65ced9de73ed5, 0x4ae4e0ad8ace67ae, 0x65213fc823013c8e, 0x1b6c45c466676be9, 0x9058254aac43b254,
    0xa73b15ef0d298557, 0x6a52e2f2e8274433, 0x15a42be5d8a526e4, 0xc78dac6d791d037f, 0xc5c7ee04368b2a99,
    0xabf3b4ad3f40a88d, 0xaba9da6f27fd9438, 0x82fed7e2321a5dac, 0x34724c1ee39f535d, 0x74fd13aba19696af,
    0x43e644c582649fc8, 0x6eed5739325c478a, 0xc1054f9959ccb8b9, 0xdd33addd43ce65c8, 0x0be6e3a219c1d87f,
    0xe768a7e3ed454bf2, 0x755a0d2ed90d9fb4, 0x1ecf834debf6a312, 0x136bb9b0d8daa7b5, 0xbb8b44627c57b5fd,
    0x0eeaab44566d624f, 0xa86c40dc37bdd309, 0xdf1d7dc229dbfccf, 0xec3e4bbfb23a7457, 0x344cca42591d36c2,
    0x9bc1a7bf04c21bdf, 0x396cfb8c5883112b, 0x7b067e5f34d777d5, 0xb313f1fd14337904, 0xe1a4a6da4d03cd2d,
    0xf0190bfc79ec283b, 0x05589d19c0a0a143, 0xb89bed2df7007a8e, 0x83cf1ae2e97778ec, 0xb4dd761623f66ff1,
    0xb0f607aa96f29280, 0x003babfc4e0c9c62, 0xc4f0ba54ccb711a3, 0x7fc8b966de50655c, 0xf5d1476c3992f6cd,
    0x695f36972eb23747, 0xa787c23867d6c1e3, 0xc9bb3304d723e191, 0xe9f9e364f5549663, 0xa00aa8dc87541658,
    0xcc00e8b64b51f0f1, 0xdd8d3e21055d32cd, 0xbc122aa51ddbc945, 0x0a4480148e3a87be, 0x06a06a7d3621a8c4,
    0xf65e21280296e5da, 0xa0ca51f33c7a9d55, 0x54e873b8a90c47b9, 0x75b237f624edd12f, 0xa98a487346a2a3b0,
    0x7fe5f1c8d438c3ab, 0x7260e24d86e8c9e6, 0xe882574a935d7460, 0xf2c99f890eb4475d, 0xb547e19fbcf21922,
    0x35caeb4c4722a4be, 0xdf9dc0388188808a, 0xc0f609ee9a2a9027, 0xb2879d8f7799de34, 0xecff7f1ae697a35b,
    0xe6dae6b82f8ebae0, 0xd9fa6c8906fa93f1, 0x358c13397d9c7209, 0x84069e150dae4180, 0x01a9d96f6141d7c3,
    0x5468e88db7b8d5dc, 0x40b26306ed6024cc, 0xd471cfa638eb15d8, 0xba2c88f91bfe6c3c, 0xed38d9034d43252f,
    0x98f892b4d5eb753e, 0xdb1e6a70d6306e7e, 0x6b987cf8b099acad, 0xc82e13d39e0b287a, 0xf6b2be3183a04d8f,
    0xe6e03689509223bf, 0x785dabfec3762cc4, 0x8166ff6b750038f6, 0x5d4783ca90239369, 0x1a93c2be64d4e51d,
    0xb4989b3fe4b394b2, 0xbe931dec82197231, 0x2674d8a7975e1f4e, 0x251975f0b8848495, 0x65499b172a827f9b,
    0x96519eee067f19e8, 0x659bc299539c6f25, 0x39b6d57dcdb08423, 0xccd5c55d5f94f74e, 0x0c37f8cde655c435,
    0x3f95e43542d2a811, 0xab6289b84d44e984, 0x154fb28cb7b0c137, 0x08003a912a2657ec, 0xcb90d843d6fdbb82,
    0x9575d97042031c3b, 0xd107cab69c63f092, 0xc65f5755d9eb5740, 0xe973497c53a6c38f, 0xf447458dfe1ed1d7,
    0x31e46747c3d1f1e2, 0x1a047c537bb690aa, 0xe24a03929a82ea84, 0xd82dbdb7c5754c75, 0x40030a9e23aa03a3,
    0x7b3e526ba0001c0c, 0x3f3b2a93893671b7, 0xb569f70fb6696f81, 0xf020226d3237503c, 0x6ccadc4c858b4812,
    0x6b83f592aa372ba1, 0xbb7a1df78b5b6ec3, 0xb24879f307929d39, 0xa44c921ffef45bda, 0x6dfc19a65ace7d2b,
    0xd6532bedaec41b97, 0x895050fe50f543b7, 0x9cea0bcd63d8d0d5, 0x0ea32236283a3a46, 0x4404ba737bf1147c,
    0x23955cc2282ae620, 0x3293facbb7a168ee, 0xe4b4c39585ef71c0, 0x81423c07e65adad1, 0x7586477ac1221719,
    0xac73647fcfedc4ea, 0xe1c504f3defbfc53, 0xd7563430219f92dc, 0xbe73b3e4bfa165ba, 0x55013e31249b5f10,
    0x66650e96e489e2ff, 0x4dfcb7900420720d, 0x9828597e671582fe, 0xf642fb8693730e0a, 0x74cf59689b7f709b,
    0x1ba56d143e371f82, 0xc9c9dea0b687747b, 0x58b3309b8170740c, 0xfe1cacd4cb4202a7, 0xc69ed92920130acc,
    0xfe810561a2a98854, 0xfb4ed89da3abfe34, 0x3e8047f50f98ed65, 0xb1a7ec0648337cf1, 0x186ab04a000ffe6c,
    0xe34bc1ff59e75833, 0xc50c630f2fad0729, 0xf66b7c06347ce7b3, 0xc04fb3dacf7a9adc, 0x69f7f13964b4f82b,
    0x0b7ec65ffc2f2eed, 0xd861850ecff8b711, 0x8aa5b9e13e4f95a8, 0xd73efb19e14226d8, 0x4a95233a5693e22a,
    0x029b960bb72da90b, 0xa257ab9c8d269baf, 0x5f5967a794c427f3, 0x1f69ec73a37a35e4, 0xcaf4e5764d17efab,
    0x21d687b32e7e54e2, 0x62233e91717de6d4, 0x4e587b200a2dc704, 0x6d2ef5ef5ac3a142, 0x6af158f6cf8d23b7,
    0xf2996e2f5f6bcb57, 0xa7e99ca0834575eb, 0x2872a3e753893af0, 0x85f5d2fa9d3491dd, 0xd501ae14f28e9b02,
    0xbc4856ff58678145, 0xc1bbc557f7e4b967, 0xf8994976f7111e32, 0xda380e3058d58a66, 0x51bde09c572cd41c,
    0xa5aa948cb0f08bf2, 0x4d28677ee2addff3, 0xe6a5f37d29a5e2c4, 0xcab7382b591f1b2f, 0x1c3eeefc5e80e5b2,
    0xba809b8630d5b333, 0xab6033436106dff1, 0x0fcfda00a2df7582, 0x78fa613231dab129, 0x454fbd346706e28f,
    0x6fededeaf06c2a7c, 0xfa681fad3c63d436, 0x99eb68c5cf1229fa, 0x2b1ce20b9f018221, 0x83373a5a2f1e120f,
    0xc44066ec845cdd9c, 0xe01ec5650effe0ef, 0xbf9965dc6e7eefb3, 0x821a82e8d445ec14, 0x089eace220b6e786,
    0xa3fb01ed5bddae3d, 0x1cb87c0b48fd2c35, 0x9a2cc4df8494ba99, 0x0b79baa4ce38dcde, 0x70026e9382805605,
    0x0e100ea5adb68272, 0x971e938a1d90ff77, 0xe32ed01d314b227a, 0x147df51df231631b, 0x8801c04653b12f00,
    0x714b6fd7487cdfaf, 0x493daa3229d74f30, 0x0e8ee02c4527fc0c, 0xd32a95cb65f1fd77, 0x4befb58afee47b15,
    0xee8d11458c47cb26, 0xb52ade928ba5365b, 0xcc9c1cda01cb0ee3, 0xc987cefe0ac39c31, 0x67b74d0281aeaa6d,
    0xa67c5bbfb3abac0c, 0x035c54358954bd7c, 0x74d61070ac52a463, 0x6dde8a787103d6ce, 0xc82ef638075bd765,
    0x63aeeae23bf85195, 0xb5116be9af6fd846, 0x8889b1897387dce4, 0x9520ed1e9beb78f1, 0xd8a53b1a6726fbd3,
    0x3bbc3ea95aa7f058, 0x2d0896a73647f06c, 0xbafdedcc2b410bc6, 0x24769615e128c8a1, 0x52a2092901e211d9,
    0x07e0a5df0abd7bda, 0x9241ba7af22f8c09, 0xb821659be01100e1, 0x087f12ace6a913f1, 0x2cc154384890cf2e,
    0x332212fd0d4c93b0, 0x1ad3986a5eceabe5, 0x42cde963f0153516, 0x71809460427bc207, 0x41e21887ae6c9187,
    0x299a3e69625ea69e, 0x733e601ae456a4ae, 0x909f5ba7f04b5cf6, 0x450c158aa4bd9e77, 0x7fdb09b1511e0414,
    0x4753fa7b2dde84f2, 0xb7d6144f90015e15, 0xd0140299117f3504, 0x4114b95f6e3cab17, 0x60ac28dcd62a4913,
    0x0f296a2620172cd8, 0x04e31164c35e4f15, 0xe466c33a2b4de535, 0x5c6d64a8002c13a0, 0xdd066e73f4df1124,
    0x86c836c4526eadf8, 0x1a62c12721fa52ed, 0x085d0e450c57f928, 0x13e74038cb0641a0, 0xe154bccdb6c3d0a6,
    0x1da4d77027d4f922, 0xbc1e3d9e3047cb1d, 0x4dff95b959371d49, 0xfd9d55ff33ac5c45, 0x16b318d74e485bd3,
    0xa518062f2c0ccefa, 0xd370f45ac2dba449, 0xb8655a77918b7aed, 0x23a7bd7c80ad5a0a, 0xeb849fa8a71305a5,
    0x8f8793d12dfe840a, 0xf3b0e840805374ad, 0xdc2051931279bf13, 0xff26d41edeb16717, 0x717ed99b9e4d4a87,
    0x463f8fa61c9e06cd, 0x51f6b0e5af93bcef, 0xb22964cc704c363c, 0x7d4d49d1973b14e3, 0x836ee4a0f1693d56,
    0x6741d42b00c3c409, 0xd0a54661e926d116, 0x68f9fa3fe742cd3e, 0xee04be4df06e52d1, 0x2a1d652db6466c28,
    0x0b5005e765c8a126, 0x3af7e4d59e46cbc4, 0x1061dd78bb1d5a4d, 0xeebb9ebc8a7de2a6, 0x53d2572e2b09100d,
    0x660bc66151156f08, 0xec9c43343637b7a5, 0x783c0d74aec411e0, 0x31465dd042ba246e, 0x2737469dac0a7f91,
    0x2f02708242092a01, 0xa8cdf652345ff5ef, 0xfb5eb1c305ef2b18, 0x822e768eb6d0f2b3, 0x0584b80f51416c9a,
    0x39973817a390d296, 0xc2b47076deea9063, 0xd0d3a22e8b43e0a0, 0x86887af8f86f31c3, 0x62e5cc82d2c63e7b,
    0x44be1b892ca74dd9, 0xe23c626b617241c0, 0x49a299a7b01afc26, 0xd527fe50afef379b, 0x71ed760412001016,
    0x2dbdcc72f2c0c73f, 0x4cb9b1b8637d9a4d, 0x0b2c99130ded34f9, 0x247681315a7c78f2, 0x0680cb501629e2e6,
    0xd810f1f4c5df4862, 0xb62be7d66825e997, 0x3e3e69f9beb821de, 0x241f00d917a2522c, 0xdbba9d5d888bbc38,
    0xcc182794ee342ca8, 0xcc70c7d63271428d, 0xacc71aeaec99408d, 0x18f1c6412b721f8a, 0xb8b5627cc9bc3b04,
    0x673f5e52062c9fd5, 0x3568f9f6079ad51b, 0x91de1a66825abc84, 0xe9faf905f05c45dd, 0x7c47c21ac68426d5,
    0xb46b15dded133f53, 0xc23d2946a8c26081, 0xd83aedd533bd02b1, 0x6a2272a1630fd858, 0xfb65fe228b2f1733,
    0x8b75bd52fe553914, 0x4293b97221c83080, 0xeb99094b46ede87a, 0x74696260f6de248a, 0xc691d150e607af4a,
    0x7027bacca6f4c640, 0x1904af346cee368a, 0x3748c01d0ff56191, 0x96a17ac1e1d1052f, 0xae9e099144bd3e8f,
    0xfe54da7d995e0131, 0x536f42e0ee714cb8, 0x6e04f25c4505398f, 0x0e6b5f4e8e3034a9, 0x6c3d6430836f7ad2,
    0x12bcb3a85ad65dc3, 0x311f9394d74e7600, 0x3561bc69bca2469a, 0xb30d97af5842a231, 0x21e9e49f33b5b216,
    0xf8f23c36e2468b1e, 0x5809dde30e8070b5, 0xadae4cb521938358, 0xf2f5762c824cc44e, 0xd01d250dc3b4bf16,
    0x624308ed0240d645, 0xab486ce83a00c4b7, 0xd617a2526047c312, 0x4ccbdc9efe62f267, 0x7fac014edf76ab83,
    0x4e13b5f998f5a48c, 0x6dbf4b5770a4db29, 0x6205bcf02398dee5, 0xfc530f9ae003b4c9, 0x5dccf957e037ca84,
    0xaa16bac64db488ce, 0x4aea65638f397500, 0xbe2f0c33ab678f07, 0x14546a6ef50b119f, 0x408f2dba6e3d4440,
    0xfa53119f50771b44, 0xafdf341ff637b574, 0xa2f51c784f01ae5a, 0xfbf63b7ba3bb9d9e, 0x015d76863934d421,
    0x9d347cb0b7a9f886, 0x16d200de8661d508, 0xa992136cf3c69bf3, 0xb75dde40edf78ded, 0xca012af5074c5a24,
    0xcafda72b8c324482, 0x9fc5bf482e8f738d, 0x25ba4c5770892128, 0xe3b2440154d4031b, 0x8eb80f8b95e35901,
    0xe2bde6ab4483e794, 0x622cc2da7f2bc101, 0xa62f7b014c1245d0, 0x0e5590dce6978b48, 0x83a520f63d11ead8,
    0x39ed719a4275e217, 0xa483721f17016235, 0xe54d035180118007, 0xaee0f2765088d3ec, 0xb845687323cddb81,
    0xfdccf3378ffcfeff, 0x17ee70a0a5398b7d, 0xe5d521e58719b872, 0x2b0975a246824611, 0x2ef6f55f960d0c17,
    0x0b41bac5b84a4d5d, 0xb8b1c3349efc43b6, 0xcf7bc932fd845dd5, 0xa9b914389560824e, 0xd98c7a53de99c8f4,
    0x4cc6a4aadbae1c7e, 0x4a17867437c0e9e0, 0xf1604e15f5d63456, 0xca01455574039d8a, 0x33e01b5100572e22,
    0xf3c25c833d1d6e49, 0xe5df8df141b524ef, 0x6a161fbd37f3c306, 0x612b3bafd74968d8, 0xfee74ee4f60e2c71,
    0xdda7f631b67c165e, 0x9f01c6677e0eeed6, 0x70233bdbc8a3cd53, 0xbef9c72d97d3358a, 0x06c9113cd1d3c725,
    0x1de455ab8c7d850f, 0x2a04cbd36215d78d, 0xe4df38bb6f501356, 0xdfda3cdfcca10fee, 0xc1139c7bf1d6b9d1,
    0x2e4b812a51be9ce2, 0xfac1ef7d6488cb2e, 0xd12a3581d63756c9, 0xa912fd177ca746ef, 0xdab5e308b631b15e,
    0x11cbd2cef0b7bf44, 0x36b8762a41a88b98, 0x4fb14c4b1e9fd9cd, 0x1751f3760596a859, 0xbc48755ea10b322a,
    0x13749255773c21c8, 0xfbcfd042255a9d89, 0xd311a2f86decc442, 0xa6b03b285ffef093, 0x9e481e985bf9bb42,
    0x0c504fe712c8855e, 0x5567ab7ef06c29b9, 0x5a19ee7e1f52e559, 0x1165ed18416278a2, 0x08abb3d5bf3b3b47,
    0x016b7fa09a0829e1, 0x0a964d20dca91bc1, 0xac6392cd8f3c22a7, 0x3db089da8f0b56e1, 0x4f064b289b11f7f4,
    0x5bf1466a1abf73fc, 0x2198da99798a20ec, 0x64e98c05a5e6c094, 0x46a771f3dff7de19, 0x0f5e138349460def,
    0x8f495b2af499f1d7, 0x7d2c3c49a1b964f2, 0x74004a1cad2b4573, 0x948802b1755d2e34, 0x0d13f4b4393717cf,
    0x92cf15ae47351c60, 0xdc49fe796020a57c, 0x708e7eab3cad2162, 0x7e2c6b6e4afe2fb2, 0x7e084410e9ffeaf5,
    0xec907668d770ae92, 0x25662b041d21618a, 0x80dac3f052ce2487, 0x75f42374fa78fca0, 0x2c882fee641ac3d0,
    0x9c249ea4db410203, 0xfbc4b652bf58b471, 0x3ec3f7e58325818e, 0x7a69e92045e9181f, 0x5cb1f553992b2568,
    0xe17d5d243dd63ae5, 0x41939ee77fbc4ecc, 0x0c5765e414ef828e, 0xd563e14dd82e01df, 0xeade352fbcd8741d,
    0x04690b7757cbe729, 0xbbc86efb9a305ddf, 0xbd0075f17f04379d, 0x70a7d3114b38adce, 0x50da4d9da706d05f,
    0x677e1761b95b0763, 0xf1a71474deaafda8, 0x34e9a39a852f1916, 0x5fdc168d9d2d5873, 0x208044f7adb25109,
    0x2f2513b0cfdf68dc, 0x04b33c07e180b1b9, 0x49381a575f96af5a, 0x7ea229823c0a7ab2, 0xcf2e6bf923375132,
    0x428c0f0510d26e8e, 0xfd2ba028f65e78de, 0x910e48f65bed86c9, 0x9e01a005fdda193e, 0x6234cb83811aaf35,
    0xf6aea21e2f273ac1, 0xb75b3a16b9dcfe11, 0xa5f16beb9cdd5bf7, 0xa62f3a5e37361b0b, 0xece12da37f8dcb21,
    0x37a7de5f54b2f6be, 0x8c571325593bc4bc, 0xb78e9fce50966561, 0x9222c564512ba31c, 0xee405e44982472c7,
    0xe26d96ad66719594, 0x089115b19f142ae9, 0x675095cf4144b9b6, 0x5b4a46be7664697c, 0x6493cc25e5b59fb5,
    0x8a7ee39e70e45c72, 0x71abbd253e114af8, 0xfaf9b526a2e49055, 0x3a773f1147d2b249, 0x775449c8b6a66ad5,
    0xf9e818190ba62f5a, 0x9ccc4e653037370b, 0x12a5b51d97a3436e, 0x57b0c3b71997a830, 0x42e2d4049a80a764,
    0x364fce6cb312caea, 0xac08fe7ae728d77d, 0x459037c8f3e79253, 0x6e8077a579aebf90, 0xc5ec8d092c71d565,
    0xa7c84b4579496a8d, 0x344b78893d25fa79, 0xef3423704e9b3074, 0x023ba4fb1cd689ec, 0x4613eefea2266038,
    0x0e604cd51cd73e39, 0xacad3a719c755f1f, 0xfa625a65c2ac36fc, 0x58566b15f817bd9d, 0x3182c3d1752585bd,
    0x7a2e74be453ce1c1, 0x23f6cd8ba5c9ae76, 0x9b500981cf4731a7, 0x8974c9ad97b43b32, 0xf50c0c74ce6a2c8f,
    0xaaed36db7211f932, 0xd398c06919e7af8d, 0xc227423af6902f80, 0x59d2864e133b4ae7, 0x900b594d0337e9d5,
    0x5f0b47db67119f9b, 0xb1a25e4f0341a03c, 0xe69526beee98c8b0, 0x4a65880f239ee2e0, 0xf5971a9a1a3cea31,
    0x8235d0fc4e0012db, 0x28e454a7c6a63006, 0x88638c83205de40a, 0x6bfa8af29556e10a, 0xfd71f9939703392a,
    0x2debba9803e5bf14, 0xd4cc298af46132d0, 0xa2e6e4a52f834ac0, 0x7067c77aa3f3d2fb, 0xc339a79cde07ba41,
    0x8c5aa925ecac324b, 0x050904dff270148d, 0xc9b16cd1cb7ec122, 0xdeacc0a2c8507e90, 0x585a715dc7ba3e42,
    0x6e7d0146f853ee54, 0xb9c2e4e70908bda1, 0x6c0b2367a7a3b842, 0x3acc0d83b2039d82, 0x9028470d2482d4e1,
    0xe602c37d8a7ced20, 0x26c04bf99c3061be, 0x1091c8bca19cdf6b, 0x997c4b1d90aece6d, 0xb729f1e04a40bda0,
    0x5e43fdcac8b7eeb4, 0xa623e6def2f8b8cc, 0xdb20b454a8bc5d66, 0x736caec82746c671, 0x8ba881506179477e,
    0xd34cf89fc8cc33f1, 0x3d0618c80f3fed6e, 0x0ceb56114d3e9d63, 0x46d1b7336cbbf8c7, 0x0a6e980f110fc7fb,
    0xaa60b721c4953ea2, 0xb4ea453f1ee8d539, 0xd1d27213bef7bb70, 0x5fce2a65b1202b70, 0x4e0a6506ea9c131e,
    0xbc52c1d2b4879964, 0x18f437d65ca138b0, 0xc56934213b017614, 0x51cddb915f0fa2bf, 0x31fb566da0719aee,
    0x0de51b890b922e7c, 0xbfd13c71adc0e5f8, 0x0b17dada46831928, 0xd7380bc98bc2c2b5, 0xec8e50d1fe145827,
    0xb0912cf6a2f6dbd2, 0x47936d9101f8a209, 0xbb33d27b9d30dcdb, 0x601289efe18a3f4a, 0x4a996acbab68e28d,
    0x242b25a5291e479c, 0xd58fa288fbf9317b, 0x1674e14d7abb58e7, 0xbd3495e63ccb5621, 0x20f41afec325a771,
    0x40cc45cda0f83e9e, 0x79671f9f99ba92ca, 0xaa034bc0f2a47da6, 0x6c7fe5499840416c, 0x6cfa522fc7d6076e,
    0x4abfdf990f74b531, 0x1281fa5b044caca4, 0xe91839cad5b7e50d, 0x2b3228a5f25cacaa, 0xeb1960292ed7bcae,
    0xc193a083b2123fae, 0xd660064c5ea700f0, 0x6a559e0a8fe6425b, 0x5918c64e439b904a, 0x4d9828768b7a0830,
    0xc1df121543585895, 0xf596e2c33af316c6, 0xcfdb1f7608b037eb, 0x978799cad0a37b86, 0xd8f3fdf2793a6463,
    0x0d4b2e32ded8dea2, 0x730ca56f484376f8, 0x0396efae50c6394f, 0x3eae6c4f8d7cdfe8, 0x6a80c3017794fa8c,
    0x5f27b4e9af6d6f3b, 0x9fe4f072c7d9bd01, 0xf0128a616c4a4a63, 0xb5e1912efdbec9b8, 0x0c5a77877f793008,
    0x45ae336c5d53cebe, 0xd942835cb6a25d85, 0x925a4af9709b3deb, 0x1a95b27ee6d1559e, 0x5989f21cc60a0766,
    0xf61176c080d2be74, 0x140bb192104ba4a6, 0x9543bacaeb861ccb, 0x472e71b12b387bef, 0xa07dfaaff3926d12,
    0xc402aea17a2259a5, 0xd525ffeb31798ed4, 0x9d3d61ce989be3f2, 0x0794835829b9357e, 0x1938ff9cf913d688,
    0x1edc6e36c62b2995, 0x8598bdb093bb4f87, 0xd139f86d449e27d8, 0x775d87ebfc4853d1, 0x8493b9bc3c1d27e5,
    0x9ebe8c93de464054, 0x515e31b0d10cda4a, 0xdbe52edcc5ce6f0f, 0xa95b52b1ffe3ce3d, 0xb2ae8e74c596b9e1,
    0xd916438b36e2f945, 0x89e2fe69036d0a5a, 0x6ca4d478b0cc5f9a, 0x9fd5521c01541d2f, 0x981f74b4cd46ea09,
    0xcd28a7cc2394d900, 0x9c69702b27269ea0, 0xd081c17c4335e389, 0x534905ef8d860369, 0xe52fa2e5d8734d7e,
    0x047983c03231ff01, 0x4561a15d39e28c9b, 0x8a47a4cf3e8aa0ce, 0x90488d721b225cb3, 0xb9725ebab7a36b1d,
    0x1f85515aa8f653c2, 0x5f6f129252f8937a, 0xf794bf0be0fdca50, 0x25dcc56bbed2c1ec, 0x6e6c8930d82000a4,
    0x3bd4f80bd3e5b60f, 0x2446170355137294, 0xb7f433c21183711a, 0x0e9ba058fb67e701, 0xf25b8f9bd234a650,
    0x4ea7d90247b44537, 0xb693f0ad3c4dcf72, 0x1d375cf6168d69c9, 0x0c23be37f88f6928, 0xbf6f1d81662765a5,
    0xdbcf530b98aa9b7e, 0x4d28d7143d8b956f, 0xa0e8048577fefce9, 0x83d32b0cec7d246d, 0x1baec92eea9bc26d,
    0xc24b8d31b43c257e, 0x75bec10169281dd7, 0x8cee1d5a637fc5fa, 0x659703ea7bf6d335, 0xdf20971f4f15896b,
    0x34c4cc39dc2540e6, 0xcae52f2c9cc3ca81, 0xb6d796353f4fc1fa, 0xf98b942c1711bcab, 0x682fa81770fc88c1,
    0x6c59cc09fedeab3b, 0x1ce0ca5ae4805fb0, 0x031741a212ab8606, 0x7b488b34b2bfb90c, 0x52a15ebf53b3c0d5,
    0x5da33dbca8d5a9fd, 0x99423693f604722b, 0xebce61498f416beb, 0x3345c1b82ae9c726, 0xc494c4220cd85762,
    0x3a5251f95c241d85, 0xae4089a265708dc4, 0xc74ee620027ab221, 0xfae0e39af9b5c39a, 0xb332981c0b5ca14e,
    0x4f916ca944556342, 0x20d1f6da8768480b, 0x993d89ee404b2043, 0x32d6ec5666c9b7e3, 0x46c0918054a51d9c,
    0xe74a6c46a089b4ee, 0xe9eaac9ebbcf8dbd, 0xa7a8841d0ef56c58, 0x20dd8ca8c702c115, 0x833a95d3d5828b4e,
    0xe9583477421e0051, 0xe37b205fd397e94c, 0xe9f290bd40d361c4, 0xa9942e67c3d1e61b, 0xabf4a5b02b9e9593,
    0x0a888a33b87abaff, 0x3d567a3ae1bbfa95, 0x1f68809334041fe8, 0x57a4259cdcd13e0a, 0x99f5bfd1af7b18a3,
    0x9fe77f58dbbae291, 0x66616f95c107d35c, 0xe75deeef9b775f0e, 0xba5f0ee209ab88f1, 0xaeadfcf377df245c,
    0xca814a34e39a98e6, 0xd7739588995e50f3, 0xaaed491c0194f5fd, 0x8466498341a63bfd, 0x91abfc5f53e0b5b6,
    0xb0ff8ad77ec8dd65, 0xd971902fe098044b, 0xc0746727b2f37ee3, 0xa576c4a293142fe9, 0x62fb23cc5e792214,
    0xf409a6052174c123, 0x11bcfdbe1aa9b225, 0x27c1a2704f55fc04, 0x5f7d7159dd5bfb92, 0xa8cd9e4891e3fc23,
    0x1fe8f60d57e9130a, 0x3a974232b3a237a4, 0x9ba1cc83f7d05c7a, 0x6002de47955f6014, 0xf58f7efc23e455ca,
    0x0bd57c3195e0a575, 0x48960702ee9334d3, 0xd559a81dcb021eff, 0x75c8f5dbc45d5e93, 0x1d1dcb481517de61,
    0xe4512173454a4db4, 0x3cb13e32b88a4581, 0x3fa8bac0e0bdb8d0, 0x888e306919bd6c0b, 0x587218175cab3d29,
    0x46e47c05bc7a095c, 0xfa2049eb13d390a7, 0x3ac187f3ca29c07d, 0x45c56727d2495657, 0xd31df14b695ca74f,
    0xeac9a340742832c2, 0x3297c5d9e529bf1e, 0x72f4d7b4effbb9dc, 0xf1351c5acc242428, 0xe21998d42cfc5651,
    0xcf469d9354afcae7, 0xdcdcf61794e9ea7a, 0x119250eb3fb00518, 0x9f7a2d80e1e0b54c, 0xdd322ae3eaa60dd7,
    0xef0c22f2623489f5, 0x671b881e0f6b5348, 0xd7cdbc90f6f0b6fe, 0x1a0d207059e26da5, 0xf2e8ffc21540a23a,
    0xe7a886e08b10feab, 0xe0d8737877acb0c0, 0x70c211239d34e1b6, 0x3c0087ff99a11ec2, 0x0f7ff7948d8bf413,
    0x9c14169cb6738103, 0xf5a279631e9c9e4f, 0x4ffd17cffc9eda36, 0x745b040f98fbfa87, 0xc3693a2e5e9d0892,
    0x53609d139099490c, 0x20c491454c65e455, 0xcc730ce7c9d3abd5, 0x4252a812d332c617, 0x214f7f6f4b9baa92,
    0xb73f21318ccd6414, 0x4614eb10c3201c64, 0x7de79bdbd44b97dc, 0x136b69aa21999181, 0xb545d4854bc1ba05,
    0xb43e58c795e4864d, 0x364dedd1450567d4, 0xfcaa4566b9bedaae, 0x4d381f41ff4fc6fb, 0x1cc1aed185a08baa,
    0x5415560a0c1d45db, 0x64149ffb663ed290, 0x15bbc5fa774dfaec, 0x4c735307ebf0642f, 0xdbf8e095692cb43a,
    0xb5255b878646e3f8, 0x8822aae40ca49017, 0xeddd45351d4f89f8, 0x2b8a9bb3b8802a6f, 0x5bf2e2d86611c806,
    0xeff92f78183c1668, 0xf6fc4741d0fbb9a3, 0x2944f91ebf94122c, 0x159f651daf172b59, 0xfa3caba45b83b319,
    0xda842db26df3d99f, 0xda860b63fc2c429f, 0x45916e6eda5f7c86, 0xdaba8b8ba49ab89a, 0xa12c35737f1d1cc4,
    0x29f2184c9010bdf2, 0x17f40220f6f457cd, 0x861614d8181e7ab4, 0x77838bf6b083f424, 0x90bd095783643513,
    0xb1ffcbe9b674c408, 0xf6f7449aaa8f02ea, 0x84ce06a017bd2421, 0x2d5e9340f7a215b5, 0xb88b0cd6d1c5b4e5,
    0x5ce186bd73600920, 0x7768d683296990c1, 0xca2b5d9c0534a698, 0x5d623910f7e30656, 0x7b317803a39b5481,
    0xdb35f56f9dd69540, 0xbe57a37d1db17606, 0x8be8ab71d8d46545, 0xc6c3f39b8a2fe89b, 0xd691f94ee6c0fae4,
    0x4be2d6302cb29e9f, 0x558123e97ebbd98d, 0xd8c4fd3eafd922cd, 0x324fcacfb835e316, 0xa4e89b0411522657,
    0x163e15b1870b6527, 0x752528e334ac2be3, 0xd93d8c650696b8af, 0xdadc6d232a407bbe, 0xe259fa552dd36ca2,
    0xfb38f0fcb93de200, 0x83b0ae923bb97c90, 0x022b7c7a8e815580, 0x64f84e827d375cd6, 0x5eff1c4d3d6f9ebd,
    0xeb9a9e86c52b0176, 0xccc732b5acc6782e, 0x90ae0db292fec1da, 0xb18e8446fed87d91, 0xdda58c0dfd926b0e,
    0x36187744eb66263c, 0x9a51919d8e47c334, 0x772e3cfbc0ce0672, 0xb3d8b3c9532f8445, 0x82d91b78c2f9be4b,
    0x3e93ca7e5757b951, 0x6191cfa0481160ba, 0x8e446abfad8240e2, 0xcf56c7a9ad92cba9, 0x0ae03529538dd035,
    0x3cc1c89af415724d, 0x5637b837f4077e57, 0xbe9e126fe4988d17, 0xca05a3f0f776eb74, 0x8528ea253feb0ef9,
    0x307b7ae8381e57d5, 0x850bfaef4741b5cc, 0x7d26ff5988fcbf62, 0x454b447e14cc9c1e, 0xfb182671a40821a0,
    0x50c8ef2e23abecb8, 0x9172f3a003b95387, 0xe1a4a4a9b843cc8f, 0xcb21762db10d5fa3, 0x7aabb77e7c984e0a,
    0xbb25500e7168e256, 0x812efac2fff658b9, 0x070b224b06ba4b44, 0x9202eff7c5c572f5, 0x364f2d1f287c4a20,
    0x791088dbd510d704, 0x3205b43b45473c7a, 0x0dc888ffb0e643b0, 0x05e73e7502c98344, 0x19f33b6fb14e1877,
    0x54e2476e9d160a1d, 0xe5bbb7e2854117bd, 0x71a2659dfe604fa9, 0x75823c629fa3ada1, 0xf8ffd361b556b57e,
    0xade3907d1be4e86c, 0xcb14eaa81a78176f, 0x5a912193aa89f7b4, 0xc1bf6bfa03c7f539, 0x06f970f53a8599a0,
    0x4a998f88e286a6e2, 0x8e6a07fd41e6e9f4, 0x9900553517997348, 0x4e3c188226f71cd2, 0x9c83634f396fc1b0,
    0xf1c45c6702995f50, 0xab251721f96d525a, 0xcf28f246ed43f254, 0x0f158a2a56d53f5d, 0x37e2e2a5699fa84f,
    0xf71faf30627c4e63, 0xf19fed3a326a4cd8, 0x79c41f3e488ca4f4, 0xbe5afc6b5ce5b52f, 0x6f064bce2cd50c74,
    0x86ed4a200db55b31, 0x2e3c05492a307000, 0xbc0220abd3ac004a, 0x2daf6f527ec06dce, 0xe03bf892c2b67c5a,
    0x8bb4ab1764ce86bc, 0xd585648a88939cb9, 0xcdd6a73c9341fa32, 0x80f02c1ad5dee1b5, 0x950738c928c08187,
    0x3e2786dc3f460d3c, 0x874934bfa1b8b57d, 0xd76aa259d5bb6396, 0x320fcae83396c19b, 0xb3271f3807c1475a,
    0xbe9a139fc6a67472, 0xaeb2034152ce0c01, 0x4cd5b04b54300900, 0x384d6199893f86c6, 0xbbdf3c60af8a04d7,
    0x7385d45e20059bb1, 0x12fc2fccbee807bc, 0xe42537903ec55503, 0x74f52ebfebe83cc4, 0xbf59482f55db8d5b,
    0x8bfaaacd63eb124d, 0x725880012f466949, 0x8fcc4184256a4539, 0xf3b54290320adb31, 0x3c9d618c99a77559,
    0x5ab7f6784b7244a7, 0x893ce499211fb3ef, 0x08833b30cdea8aaa, 0xe84dce4a8d5f1aa5, 0xf3687308fb1fae6a,
    0x24e3d27d0be24871, 0x87bf772045694281, 0xa8a33c3e0bdbf344, 0x2cba03be8453f4bf, 0x9286ddfd73d5e06c,
    0xe913826408a66efc, 0x2bbb0f5a543d5b12, 0x0d26b09ed5ed1595, 0xcd815943b10c7744, 0xc7d942a1722ab870,
    0xd1d9e1e346ee6962, 0xbbf86b3a1fefb3c6, 0xa2b8c3331f4644e9, 0x26048bd71bc55003, 0x4ad32cd222b662f4,
    0x2117dacb836a7c77, 0x21995814ead54fea, 0x96765025cc02d6b2, 0x7bba800ba1ea412b, 0xa882c5eb8405e0be,
    0xe4999295d29e86c8, 0xa136f3a9b6486294, 0xbd5b7f63a9bf027d, 0x1fea8acf852ac783, 0x15c85a13213bb48d,
    0xfc189d61e78de65e, 0x6bfa69731dbc382c, 0xecfb071bfccf9ba9, 0xebe00b36bf3e649d, 0x9a41ce2c19b8ff27,
    0xd8dd5d3d494d8534, 0xc2c84044a5de5a6e, 0xa463d7e5609009cd, 0x4d2036ca87946c6e, 0xd61b83a3f1740285,
    0x84e5ed7d9c410610, 0x4743ab7aeef6fcb3, 0x8942d5fffb6c365a, 0x9d36f1abc099bc73, 0x8ea4d43d6c8ca0b3,
    0x38897057f3b4a53e, 0x099c77b63246c642, 0x28fc28939e823d6b, 0xecfa784bc1489380, 0x148c83bd624c6388,
    0xf3ae5e380dbff56e, 0xd32b08b7a65d59e8, 0xd18e7065b7da2610, 0x6b2f74fb865e8be8, 0x171aae7b2e80d61d,
    0x1e675c460cf9b1a7, 0xcd72206b070dea08, 0x76a33cedb6b30a4c, 0x0b1ee877b15cbac8, 0x0cf0cec6a9151a17,
    0x89fe0a2241423f06, 0x0234aac70f5480c6, 0x8476a491e907bfa6, 0x8ca4366befcfe615, 0xee5935885c31d2bd,
    0xfda0b33054d47566, 0xd625ff134e745a71, 0x98c3a43b973ebed7, 0x8826e1b1085c415d, 0x41707eb502ae6348,
    0xa7ab2ab341cab468, 0x9a06e002311b8226, 0x75de1f39c210ba36, 0x50de447f66c8c2ef, 0xd31af33096045296,
    0x6573e516ef9a59d0, 0x2946e548e618cc9e, 0x5dc24e660c16ddd2, 0x15a108f981235053, 0xb27fa4f32656805e,
    0xd0a1e21f7400c110, 0x7b065349165b8135, 0xa4ec3ee62b113009, 0x68f624957969e704, 0xdcf6583948032297,
    0xf222c4bed10ae43a, 0x83ff92fff5148639, 0x9f2b79b68c9ab0d7, 0xa4084900b691dc6b, 0xa8233d11534b5539,
    0x69ee4b5b73ed02be, 0xf8f3bcd064b13743, 0x6477fe0b537f8fdb, 0xf6b26a8a3b18824e, 0x24fce001f68c1c52,
    0x1fe3b4f0cce60bbc, 0xda8751ef0ecc866b, 0x55afc510a1867131, 0x2cacbae8d371624f, 0x9559d25f7276aab5,
    0xdc0929a0b10de43f, 0x69caab164a20fa4b, 0x3d2d66fc96a138b8, 0x76ce3d13085753cf, 0x79f77f6561767eb8,
    0x34a7d2d4af6f5b07, 0x5eb8d7380a420279, 0x14eaebf62502bb54, 0x5e31d0543f857b5e, 0xab0d2cd86e963367,
    0x63541ece73d4fdec, 0xf5ed49fbec6f08e4, 0xe3e3ed667a4c1afe, 0x5d9704e0341902d9, 0xbd7b0363800e579d,
    0x83cdbe05b81ed76e, 0x811421192f59d515, 0x58743e08ebbcf848, 0x5a3242563752374f, 0x6eb01a96cf51aa63,
    0xefda4a9e7b45a76e, 0xe6aa574a9589a977, 0x31021216f4cdcb3f, 0x141d0a5b61570c28, 0x2dbd3f9cc5d7be08,
    0x4d62954601eb858b, 0x44581893ba2f15a9, 0xa381de7bd402c9ca, 0x3fba7582f3d4d73b, 0x6bbe7e6116f816e8,
    0x04d2ffae9a03008a, 0x6078d3c2983a7ff6, 0x117403650866081c, 0x93b3863360cbe83e, 0x71f3e0c852ab7ba6,
    0xdb5a7390d6aa6d29, 0x0e073d71e025c51e, 0x8870f5448f0ea0e5, 0x9ab9905853fa28ca, 0x309505a36697bd24,
    0xb90abaf08fc652fb, 0x96caea18a196ac66, 0x78a2a296096eda54, 0x774e37a7e0d0c1a4, 0xb63587d2d05e03d3,
    0x342fc08c6628015b, 0x97981232630a67f1, 0x9fca6fa200c14c50, 0x862d52d6c351e493, 0xf8a4dc8349595b7a,
    0x153fc21ff6cd9da6, 0x1a1e2e20a5a19df4, 0xe6fd193637dd3e99, 0xd049a4e3dc92fced, 0x0a37036c74d2c913,
    0xd5a6154125cb9eee, 0x3eb2e0e8fc3e1197, 0x88e62be55332cae6, 0x77b55829880528f4, 0xa1c7b987062a54e6,
    0x8ea7a275247de9b5, 0xb7fd91abd8cdd971, 0x0c15fc66dd7e42ea, 0x7079b17f47ccc9c3, 0xe5ecb35050dab5fc,
    0x5dec1e35c292ba89, 0xd8cb8e38ac7ce379, 0x631489351d98d7da, 0xa16231d19dd302f0, 0xa28adf99bdcaa46f,
    0x1c3a3dd33900cc52, 0x31eb4e787c1c0f6a, 0xbff663b047cf3d7d, 0xcfdc69913d7c4337, 0xd9f9beb2ab0554d4,
    0x972b5af1157ea946, 0xb98ba8172c6ae215, 0x9741a358092d49a5, 0xd40022d4745900ce, 0x3d8591057394bad2,
    0x3f06ae44735f3c17, 0x65b580d86ec41538, 0x4f34f8ff1f1ad187, 0x1b1eb08e020f9f31, 0x420591ba490d1974,
    0xd3927427398af985, 0x45ea971d7ecfd501, 0xb947b85c3ad1c9bd, 0x3abe0d0134a7168e, 0x245e1451b05006c7,
    0x32c169a59e21b77b, 0xa17e398c865ff5b8, 0x4a83e3f7f3fbe662, 0xc31e267afcab5fb5, 0x9672711323365b36,
    0x403551af4271e742, 0xa177f6b4a6de3ae7, 0x1fb546483d5a7294, 0xe301666f44a9ba7a, 0x75e5b0ba40a6b18d,
    0xd5dd9df6743231b6, 0x29c69a9d65c7a98e, 0x4ed7afeac92917d9, 0xa6e69fcf6f54b64d, 0xd39a2225b294e8ec,
    0x9da2f3abecab6642, 0x0a463e866bacc0b3, 0x028d8dd17e7d5272, 0x525b4de53ea6a04d, 0xffbd7f4d2bcbdc9d,
    0xe9f07dcb5e4fe5fb, 0xd217f6c8f2dcec1a, 0x38e50d3388f60aab, 0x2b2770b232e120ea, 0x509ece95c5cd4f3a,
    0xe7daab19791ed5c2, 0x7c08da1c4588b387, 0x7f95485def95fd25, 0x8af955ec2798ebd2, 0x4f3acb85eb2e3abe,
    0x9fc387f7c7069cf7, 0xc36b5974eca9e196, 0xe7a998e9a4988685, 0x05ee7f0659a808e9, 0xf9044e3d6f8279c8,
    0x065179584a34049b, 0x5e658eb5ba7f9f36, 0x5f04d76d0b6e0b9e, 0xf69ac3e3c0e527e5, 0x78d01693b10585c6,
    0x1062818ea5c6aef0, 0xa836c9da05582be7, 0x2fce2c5276f74ef8, 0x8574e419e3292829, 0xa4aee7e15e485a26,
    0xe1ffd0024c0589f5, 0x9f1ac6e2350ac750, 0x8fff55d26b87f7ef, 0x7af50e730878d53a, 0x12fe1742f1d063d1,
    0x379981eef1452d03, 0xd7143b758ea86f2c, 0x5725bc99d540ff41, 0x071ab286e2de7d52, 0xfb8da277278a4356,
    0xbcfb76ba7e946df7, 0xd08a6b862a797706, 0x02fb13fc4153fd50, 0xf29be14ebe040c5a, 0x23e399d2b3d719b6,
    0x46c0799ace022e4d, 0xfc38839883a47418, 0xd6286edee55038d8, 0xc22f0b396da277ba, 0x371a92d7ad7ebf5a,
    0x6ee1776e6706ff20, 0x225d9e779e465470, 0x1b481bce3b0d570d, 0x94ec5750bcae08b3, 0x30c102d22805bdfc,
    0x425a6a2fef63d1fe, 0xd17d6c42cf79dd88, 0xff3bf8b844675324, 0x6af0c14e93310c92, 0xf6091057b3d65c3e,
    0x3d672ed94413cc2a, 0xd65d37f89c310601, 0xaa30326b5ff2368b, 0x781d5b784e250eb1, 0x3f52826f08754ea5,
    0xbbf39bdae87d2db0, 0x6e85ab3fe77b980a, 0xc2bb35e5e87afac0, 0xa73713db2466ea3a, 0xafdd09c1d781d867,
    0x3aa6d2d969dcdfa1, 0xf94579e00c8f9d1f, 0x97b2829b0cc1dfc8, 0x3484d971f6b30d33, 0x0ba8ee70f331e582,
    0x35d3df433d33a775, 0x808e15cf6d739520, 0xfd1ceceb5adfe13b, 0x4979f26e12f8cbf3, 0x70d1d7c85b78423b,
    0xb54a1e88ea9dd99d, 0x8041a551b4e6ef44, 0x48a01d3e77805d05, 0x3144fad8417aaae3, 0x5c3334663ad999f1,
    0xf183bde58d15b575, 0x5dc330f89f7c5986, 0x1c3bb1ea9ccd523b, 0xca7e897fdc99d742, 0x0c5a860eff1f9d5d,
    0x3b7cd0d1f3b5ad35, 0xd1e32677f2835f10, 0xd9ee22a588ab7577, 0x32ff2372b0b83233, 0x3af0b7647adf3c36,
    0xfec6a27996d83917, 0x1c7db0ebe3d834cd, 0x3bae751f9cce495e, 0x67ad8ac1b9843dc6, 0x8fb5847cc27b800a,
    0xfa96d98811aaeaaf, 0x4ed3a0c4ed652136, 0xef55235a701c5830, 0xbed178414f7a9310, 0x304dc8fe6a4dcdc5,
    0x009ac2fb7e0eba0a, 0x5d8d4ab1093df200, 0xd84594eb87cb0c61, 0xf625be9db58ee94b, 0x186bab9f41056d63,
    0xc4b7c6e0e9eeec78, 0xfd2491c64f72d527, 0x19dd8d4d6d008ba5, 0x60cbbf39a0e60788, 0x0bf357f0f6183b41,
    0xc2ef7291d45435a7, 0x53c3feaaa73e4431, 0xf228a677190ae743, 0x32e41bfa7b158d63, 0xd6439c664d9685a2,
    0xcd1435742e4a445c, 0xb30b44b39e8367e4, 0xa3c3bf1dd26a7b78, 0x5f31b42534b260f7, 0xc3dadc48a31337f9,
    0x40321e9193b11984, 0x343a2c472e906f1e, 0x9dbc17784217048b, 0x90e1bdb2f01468cf, 0x8712e9a360800b8c,
    0x9d7e83c2e3ecb7ab, 0xfcfd5165577ab76b, 0x4c24b286ad18c173, 0xb5464e2529402d76, 0xac3eeca3dfe08026,
    0xa3769b6c61bf6430, 0x244e238e761b8356, 0xb759b3c43e1f89d3, 0x70d105f75ffb1a73, 0x4f060c3a5c7e46a4,
    0x05bbab87d74cc41f, 0x4989e2797d475f8e, 0xd02b2cca5b4b53cd, 0xd305c4ea8133d1a4, 0x658a5671102f063b,
    0x44e5b071818fdd71, 0x4e247bff6fd2467b, 0x3711ddd5cc063146, 0x9d2b0b254fde80b3, 0x0b582606d7e083e6,
    0x617cdaf1c6165cbc, 0x2cf703f520330d3c, 0x4aff9c4a2c6f6a3e, 0x8d1b70c8d526f100, 0x2a2e9fecbcd1f904,
    0xdc4967d1b616ef79, 0x947e4d8cb76fdb98, 0x9a12ce9706f09abb, 0x1a85db6dcec8f76b, 0xda224f069cd6f313,
    0x4e5f8a2db18d9d13, 0x298dc9c818a6bb81, 0x8b81d13d44b9fc63, 0x9b87a95179ad1f6a, 0x175179e03f54736d,
    0x8af1ef64a76674ee, 0xecfcf44fa56e44ab, 0x68f9da330ed11387, 0xf9b4b0f4e1103fe2, 0xd9ce386e5e7aecd5,
    0xfa1d2a7cf5ee6a82, 0x01aa58217401e5c7, 0x30e0e8d7cfd10783, 0xd7d46f3b16796884, 0x228d2d04fbd1d41d,
    0xa4da52470aaf5bba, 0x16719dddc18cb5c6, 0xb73ca9db90f82a45, 0x80fc0ae413b33f5b, 0x2fe15dd697c5de47,
    0x9419df60765eae5f, 0xb80f4296caeb9526, 0x5f6641f88dc19eb8, 0x775b5be88d174e12, 0xee818f2bd0ec024f,
    0x12d7a770ff9e5afa, 0x41a653f7e270bb80, 0xf9ff78ef6c651c20, 0xc5a99d3b5be5dc3c, 0xa33e69c5564a38a1,
    0x56cc8c32b14dd146, 0x439e96b64e0acab9, 0xaf585cc6fea8f801, 0x8d0c06f014560486, 0x99c05b2adbef9696,
    0xeec981f375463a8e, 0xd80e5f9f0301b986, 0x3e13d3054e2b1367, 0x21a85cf7ef08e6e7, 0x6ba04467fc24681d,
    0xff0254dc2e0eb6d3, 0xd7857e9c70b33759, 0x4a9aef7c6b9a81d5, 0x9a4754924108fd53, 0x09a677d7ce40c960,
    0x712840a65d6f5d0c, 0x0716cd6a6246138d, 0xcf8773ee1fd8db71, 0xc3342c7d807dfab0, 0x20fdbd59b3330b4c,
    0x22c39318f2befa89, 0xf212fcc5e0c58131, 0xc4c115e5ce62601f, 0x89cb1328fd7fc8ca, 0x96f9c228e15c7e7f,
    0x56f5309326b6f12a, 0x0a5b0442e7a539f9, 0xbb0d26cd247cac1a, 0x699408f9d4cbec94, 0x1ba8c7f00751fc72,
    0xd1ad871ed897e9cc, 0xe4d1d75e579219fd, 0x868742ef6de2ccd7, 0x4455951956a71583, 0x36ad00e7ffc89400,
    0x29faf37ccca1f5e2, 0x7cc2f6858b91a4eb, 0x6cb819fc907a8f61, 0x2acc08cda4c480a6, 0x3368b8898de3c8a8,
    0xeed9e636ecf47c03, 0x322ec2dca92d6cfa, 0xdb3817edb1fb8f8f, 0x4e8c74efb05d21a6, 0xfff2f92f83849414,
    0x8572267f7047a4ce, 0xf29d2ed1b3bf539e, 0x89e2967dacfd35ee, 0x1d80f0d4e76c8c47, 0xca71dcf18ea4fcd1,
    0xdaf3103a9e65a95f, 0x29d59dcdf65481cf, 0xce4390183ff8e0ae, 0x44db6dd5ca3b628e, 0xbbd1be3fbd8ddcd9,
    0xe8887fbf44f1709a, 0x870fe99c9229fb39, 0x27c9c7465985e38e, 0x39cd56b98e7eb2a2, 0x1b08ee0034574ea7,
    0x2de0d9ac8765c9e9, 0xd71a7e46309029f9, 0x335b5c0127ab6832, 0xde6a0fa46a9b8998, 0x1baf00fe1e4b8e44,
    0x60ec89c191a0217b, 0x6fbe86fb2f51ff7a, 0xa74722d0a49e02de, 0x7592c54797a4da0a, 0x9dc7f91f8b7da86a,
    0x6c7bef750341e9b5, 0x162dd072e0e3787a, 0xbdaaeca5d174ed26, 0x3dea97632f5f7126, 0x0dd707d3d3bb657f,
    0xab702b0a830d4805, 0x644e98d0623068e8, 0x323fdbdaa872f7c2, 0x7ed6390f13702425, 0x8ce02182a9f78ff4,
    0xca04b71e66090c72, 0x377eb9637f072fe2, 0xd54f7bfebea90a3d, 0x27f19f19d2717316, 0xdac56a5b50656e71,
    0x81f00d38b1594ee5, 0xf67cfcf79b851f77, 0x52c4615c0093825f, 0xc301e36df36e680f, 0x705e1e54abf7d645,
    0xf09926b9f55c81b3, 0x8697dd2b89c190ea, 0xf6f56dca0fc3a526, 0xa4a94e634bd4c23b, 0x8603c1ac75436f54,
    0x16243bd8f93bf63a, 0x8cbce4b89e4c8db7, 0x38888d4173e900a8, 0xde6de46a59a83cd5, 0x5a5e094da95f82c1,
    0x31b8d66ae62bfc9b, 0x0cee700e60839431, 0x2a8ec2a02f1cc99b, 0x481ffc438b7daaa4, 0x0bb429df90cef779,
    0xfa989ccd422e87a9, 0xfee01738cc30c80b, 0x693d918f3856aabe, 0x3e566c98ce215bf8, 0x32454b960a3d15b5,
    0x21e276da72786cdc, 0x0b7e037743322be3, 0x955afd20badfb637, 0x7312ee55b2f428ac, 0x326a27b396abd9b0,
    0xbffe7620299c2868, 0xec11f75d1b08347b, 0x2585c01fed5396be, 0xe273ab9831ecd6df, 0x7d7be20119bb97e1,
    0xc2a8d7b69a6e6c28, 0xc1b6ed0ffe81be56, 0xcaffb96dde233093, 0xb006f571694f252a, 0x69bafa0c6568e3f3,
    0x0f2a73b9b6d2e6c2, 0x257812ea5f83cb1b, 0xf89d363e774672aa, 0x64a9e9794ba99757, 0x14ce512a8c770911,
    0xef1c539f9d30427a, 0xe72c5c5551f930d4, 0x2b3de5e93f2be746, 0x17a0987ac3c0653e, 0xe2f5a6586af9293f,
    0x517c2e7d5c078aef, 0x6b0ed47de1452c22, 0xfe7da6edef0f078c, 0x3ed43dc626403a9a, 0x1181ba1ec9cdae18,
    0xd133ffc36fdbdced, 0x199775a3b05c2231, 0x6fd2fd7d87fa93ad, 0x8d994f1df1816e86, 0x1cbcdcb5c4b47fbd,
    0x241399da465fdf38, 0x9ae45043add1c820, 0x552958c207e9cf0e, 0x62721996f8e65773, 0xce5174bd8f5f8ea1,
    0x0de6f8aabc6765fa, 0x942c1cb043bceee7, 0x125d6b909e6c82ac, 0x975963c9cb96d4cb, 0x1dc1d8ff5cb53cac,
    0x082378f3c194a1b0, 0xe79a602d21d9fff9, 0x73f2f2bac93f3d15, 0xae091f8576917b6f, 0x28f20a16628e35b0,
    0x12eee799c626cb4c, 0xa9e3000f043d54c0, 0x26aa74052a4d7ad1, 0xa01f124a7f7fac5e, 0xd8ab7cbccca788b4,
    0x5dd31516e3683219, 0x242193a82b7bc58b, 0xc0ff6aa2aad4e923, 0x3253c01a7b1cf04b, 0xca5ee2961d758bd5,
    0x46b498263eceb496, 0x2c49975c5b069a5c, 0xdc8fca8911e3ef6d, 0x3ecb62f56f82c4bd, 0xbd38b742bd1c327e,
    0x718f083837b860a3, 0xb1e34cb8244ab32c, 0xbbe5b3036f3d8f8c, 0x5fded798dd7f79f7, 0x791f1de2636e784f,
    0xdaaf0082a5021001, 0xdd88224462b00f16, 0xf787a7b9e89a63af, 0x68d1dd6bfbeae93a, 0x22f8e11618ae7ac4,
    0x774aabd4a7ab16ab, 0x8620949856f81764, 0xfe3a0ad4eb2580c4, 0xfe7ceee6809a06df, 0x72d7b8d954cd6ebb,
    0x8c87ec473c8fb438, 0x00bfd3a342e89a16, 0x4b8514746f881dbf, 0x566bdd811e2fc1bc, 0x12798a048363c441,
    0x4623228e3d0778a8, 0xbd0a10df9aa4e38d, 0x51fb319467ae954a, 0x5d03789917478f65, 0x0be6e534da38b907,
    0x1c9c1d4f5899fd1c, 0xc98155980ed5738d, 0xa8020802c4bea165, 0x20223ce979951bd1, 0xac931224e0bd2b22,
    0x2af6457d566528e1, 0xbf24c373ad001738, 0x5c3be38862ab2f02, 0x0b0741017c676eac, 0x966e29e2bd81b9b1,
    0x1afaa49d1117879c, 0xac0cfd625c3d1974, 0xbe11889afc60aacd, 0xd6dee8e56c7a74a5, 0x1e86f14f16289ae8,
    0x33ea2135c9998ca1, 0x79d4576124777797, 0xc20f8782413344fe, 0x79dce062c4cf2625, 0x1017cf366896a0ad,
    0x28cb41f2df2e1a4d, 0x8e2ddc872531293e, 0x3e4572f9a5a2dd5d, 0x102340272a291ea1, 0x46e52262ab9156d7,
    0x938d46127742720d, 0x286a7f083cd7f133, 0x28a5e5833fa2fcfa, 0x47e2c54b97260e77, 0x790de2a5b2c82d59,
    0x0d0c58354701abb6, 0x9def63b696881263, 0x8980b9b6f5ff5fbb, 0x81a9fec61ea2e1bd, 0xccbd9405f8f5e070,
    0x82189f67dd0d42c0, 0xc9e6c8d02aecbbb4, 0x79acd82d6db7fe25, 0xdb28165a24cb43c3, 0xc8fd46d0092e2a6c,
    0x62e1ca6bb1cda466, 0x6a12078a5b2021b0, 0x3e58e33a85fffd76, 0x5c9fd024bc6a8bc4, 0x9262db593e058880,
    0x408ad1d36bf09fd6, 0xf295a2f4d6b68a8b, 0xb472360ffe1e02e5, 0x90c86a8b9f0af04d, 0x22ad122520a264cc,
    0x7737f589301e4255, 0xea09eb3a667b43b3, 0xed6ea20bfd196fec, 0x2aca3d35c01f1e25, 0x5112a266d7ee12c7,
    0xedb9ade3b424661c, 0xb20860bf200612bd, 0x04eccf550669cbbb, 0xf6de4179fd0cc810, 0xc594148b2667049b,
    0x053ec9fad230341c, 0x5a8005fca0e89cce, 0xc42d2a86c54d7365, 0x19561ca99616b100, 0xed1a9fead1927952,
    0x931db5f1c2513d6b, 0x476847d9ae56451f, 0xd5b9b479e7028370, 0xc9b40dc560f560ca, 0x99043ef7782df811,
    0x87539940a3a0ee07, 0x19b008d18c15c7a9, 0x78ac16d0ab429a81, 0x97b64e0c8c0d4f8f, 0x449aa45b0b9adbee,
    0x1804900af80b0c88, 0xe9ebcf37caf59dc1, 0xa3408f3fda487531, 0x13e4ff34ede96581, 0x4fe6dafc34cb99ce,
    0xe62e53afa7adb00f, 0xfea8400ea86d3f1d, 0x04f2b234f4ca395c, 0xd6dd2502fb67101f, 0xbfd004ebbbe05163,
    0xd001c357e54a82f8, 0x4340de592b97245e, 0xf69fec1a86ad374d, 0x0e67bbe374abc197, 0x18af27db1c9978ce,
    0xe4b604c3bc66833e, 0xb95aaa083a68bed4, 0x8da71be77dc69323, 0x6046c24b08440a31, 0xe2d71c97cecef35c,
    0xd6d7d78fd93874a6, 0xd002d7852b967f09, 0x68a18bed8954b1a1, 0x8303342809c596da, 0x8d1272c1630a362a,
    0x0da3ad3e155bee0c, 0xf99166cdb27c4e2d, 0x5a386a711aa57feb, 0xf6b1114f16351f80, 0xb01eb10a91896b25,
    0xaac0187b2e3c8f58, 0xb0e0bde8834d176c, 0x59e857f6ed323d08, 0x337587b0a633f338, 0x8a357c5ceab45d3f,
    0xf325bd99116292b2, 0x6244fffcd2f64323, 0x0cdf08e6dfa3d604, 0xd6063e91150760f9, 0x924df99040b5cca4,
    0x7fdec3b1e7ee9039, 0x1fd84d4bdf069c5a, 0x17a9a05ece68913f, 0x93a09f9a2ac0960a, 0xbe731b0e91987cfc,
    0xc1fc1d299344a78f, 0x47799736a4c5674e, 0x8152a14f454a5125, 0x7ee6c15beeba3eec, 0x3624650aededfe35,
    0x16d72743790ea00a, 0x19fb10721229ec81, 0x85b1aceb6a41611d, 0xdf524520064efa06, 0x677aaa8b5d222d66,
    0x130f0e9ac2271108, 0x28aff1e046b71735, 0x33dec074bca34b22, 0x3e6945a213563c01, 0xcae77d352cfc9758,
    0xcedd790a1c60eeba, 0x817300f38f66047b, 0x19143ae839a27111, 0x2ecc0acd207a9858, 0xac7803cb23f3a28b,
    0xea48f53d74c4a58e, 0x431e7d5c8a69c486, 0x11890aabe8c8ad06, 0xae09a61387f214ac, 0x7c33bd4baa305554,
    0x334bb3febce49b68, 0xc70ad3c513c63193, 0x3cdb8f6956a63248, 0x99f06ae70c10c279, 0x6e16eebd2f2c0682,
    0xc18333f3d18e9fb3, 0xbf4fec014eb9c5f2, 0x573e8aebe795dccd, 0x1470ddf9a3e1c943, 0x54953487341b542f,
    0x7fa576e8e070fc2c, 0x90401c5f98a95bf9, 0x0d25ed973d7b8ce2, 0xcb09fd1fb002d3bd, 0x7ba0863e1d849e2b,
    0x4ca22a556600c773, 0x3f6df49cc12ce3c1, 0x738d31dc605ee312, 0x379f2a78f19e46da, 0xa70e4da2ad50f3b5,
    0xcd211a668b700115, 0x50f1d9d72fca8637, 0x079229c4dd6c961e, 0x8961cb65919ca8aa, 0x6317c2654032c8c4,
    0xf27deaf2e887bb19, 0x8860b0694e63a65a, 0x962ef558bdabe56a, 0x7e307f71209b9b8f, 0xe0bfc7f6cdbd8364,
    0x8c321f42cd134833, 0xa00500f82c987528, 0x8b7ddfa8d0798372, 0xf36a6dfdbfde1193, 0xa420914b5c214895,
    0xa701ba76ca82c969, 0x521e71e4b549a449, 0x4cb97e308e25ad40, 0x69d3c134c1e4c4f7, 0x5d2808841f634d77,
    0x0d39f5b5f8e294b5, 0xdede80d5373d22c3, 0x43838810d69fd1dc, 0x3a02c5df95fd2717, 0xa4a856f899bf833f,
    0x67f4ceaabafdd1f8, 0x54e1be0a1158779b, 0xce0b65bf10ef9877, 0x4ac045f452e94bbc, 0x18fe7d967f50b061,
    0x276d362d2d52c961, 0xfe5b48029fe7776b, 0x2dcd8d0d457e60f1, 0x74687da12a33d26e, 0x4cac5e41a22c9a75,
    0x2924523a86f1edda, 0x13afd5052de12e78, 0xb8970343b2d85018, 0x64cf7bb3889695bc, 0xcb70b27c29edf774,
    0xae2078cc0e7ed6e3, 0x02fb0c044be718b6, 0x7c3b0e8c25ad3b7d, 0x18ac41058e1f50a7, 0x6e21b9e1da39f220,
    0xb02d9a63e8e30a0a, 0x4a7ab37a36f40967, 0xdc74a5b543dfcad1, 0x451536470875301d, 0xb594961a00a95e9b,
    0x551b6deb38eed0d2, 0x4731b64c6a70b9b7, 0x99f9f0fd9cbc03ad, 0x790fcda30f14c748, 0x50ee1335c25bff43,
    0x8df5d284dfedee37, 0x71532e198c0eb9ab, 0x832cc61cf7be441a, 0x8431dfd16e0e5d33, 0xce26f2f74f5ff23b,
    0x1e36d36389caa05e, 0x9063d6730be1105b, 0x8426cf9ead688711, 0x9d6ecfce2eebf9ef, 0xdb03ee882634231d,
    0xcddc3adc955b35e5, 0x0088c2423d74a486, 0xf673544c6028be34, 0xa04131d948a27e35, 0xe638bda968cf9bbe,
    0xc771048bd8a021fa, 0xdad72421848e3455, 0x3823689faf46ef08, 0xdaebe25de0e823e2, 0x042187f1df14f055,
    0x4b02678ef80956f9, 0x453c53fbfe998478, 0x8e95702144b82c60, 0x833721170fb20f07, 0x8c32a35c83ac7459,
    0xcad051568a627384, 0x7ce5687a7b3e07aa, 0xfec3f6664baa644b, 0x9d54519e7a81b5b5, 0x4d55fb62a2619431,
    0xc489e75b4e054027, 0x3cd217b9feb7a7a9, 0x0321e049527f5402, 0xf99ba6ac4c9ceaac, 0xafa2b9809ce8bb0b,
    0x82ce0815e5fbe2bc, 0xdc0dca97eb94ade6, 0x29168abcf745e0af, 0x5f3e461c04f38e68, 0xc859526f8f744c33,
    0x0471b23f96e1b2e6, 0x51d918c90c459322, 0xa65e58d41c659e86, 0xbc0492880c19011a, 0x6b87cd75500557df,
    0x98b0f0f3f069d803, 0x0903890e45d25671, 0x4472aad46e94e05b, 0x61ab4ec37a9108b4, 0xc3ee971e1827e088,
    0xebc32b8dfc648fd1, 0xa062d075d09d0c81, 0xc0603bad959a4b46, 0xa5527848fc0c9b83, 0xe862cb609b417dff,
    0xe022c644b8f057bd, 0x54a4b726776c07aa, 0x69a4a18596c5bc07, 0x13fd171b42073056, 0xdaea4fe81bec1e2c,
    0xcc0914d4435b2997, 0x9472d97736c7884b, 0x5b2dff6798737fc8, 0x6a9c95ff10c8d257, 0x4d105a26ebb48f1f,
    0xa676bd62cd9dd4cc, 0x40c7b3df5320fbb2, 0xf0736459b5743ffd, 0x6b58e23b31d2f8a0, 0xf52472d206cdcfb7,
    0xe38f1b3c3b6ca9f2, 0x7d117b425b09c90e, 0xd00d0990764d6dfa, 0x21e1eec210678086, 0xa77fb3d15c772e37,
    0xee7cbcd634eda0f9, 0xf71b168f0b4c4d03, 0x676423669f2b1fea, 0x8718f95c5744ac99, 0x3e814f6ea487ca28,
    0xf9b623db5afaf539, 0xbbb6b57918552bea, 0xa9321d1e40017b6b, 0xe3fb9e19db9ad9c9, 0x069ee17b941644b7,
    0x0d694a1aab075c4a, 0x4fd6ed4b4662f84e, 0x018ab024ef4245d0, 0xc0b3b1cd2ea45a6b, 0x9a674e454352db2f,
    0x1cac78c74b291487, 0x742b80b29588413a, 0x5448d7487ac0d187, 0x16f5a8cce0e2e601, 0x8f5ccc31e4c2ec92,
    0x5c3a8f6727a2ea95, 0xbbc9f817cb92ea36, 0x035937eefb453a92, 0xea8c9543b50afef8, 0x235ed31ee2cbd0be,
    0xf4216c7ab05dd391, 0x06a58b753dd7f47e, 0xc3d6c97c5230565f, 0x19dc47b841bc91eb, 0x7969dcfb0db20ad2,
    0xcd339c65454d3ed2, 0x4b515d1ea4b33ae1, 0x0dce3fede8c618ea, 0x2c65a573c8c103c9, 0x913fd343e8dbfdf2,
    0x0f19a77d7c89bea0, 0x46c9f43cfe8d3ca8, 0xe940a1e396ce0e8c, 0xac30dde2b90455b5, 0xb7696198ff61b997,
    0x4868f7e06b61c5f6, 0x80177a1322c12e73, 0xe705c5c37dfd2fd3, 0x3fb2bc0bf20088b4, 0x363bccd9593b1f88,
    0x37c8910a5ad75645, 0xc86d48089fbda682, 0xf94479483ec82424, 0x4ba48007ee523440, 0xdb8cad5458763dac,
    0x27035ff601a5775d, 0xdbf789243b5760ef, 0x921906541c593faa, 0xdbd7bf15f41dc3f0, 0x9e382502bbc86285,
    0xf16292b70f4af1c5, 0xb84d63e73e5694c9, 0x030038f0b77993e2, 0xdc5ecd77fbd69a0c, 0x7f16a9877e217b18,
    0x14c6f6741f211f11, 0x6630e0b9bf94fd17, 0xb86316a4f7aaa58f, 0xfc643b05b63dce6c, 0xa6560b91627721b5,
    0x8320ecfd81283657, 0xb5a8c39dbb6e5e23, 0xe826b15b6706a0ec, 0xdcf97c212ab97924, 0xd313f455c110fd56,
    0xf492138cfd67e673, 0x7b1a3887c029d13f, 0x3da7f5cb3545e2cf, 0xd3a2c38e32df47a3, 0xc62d0094c162c328,
    0x3b3702cbdbfe909a, 0x2b832b8487700f2f, 0x4dcc5f984f8a78de, 0x918b8840f5baf78a, 0x2c965967f7078317,
    0xc8f2762a261e8204, 0xbbcda852563fd22f, 0x5140ee849404ca65, 0xe45f36a8b694ab45, 0x9b24fe28320004df,
    0x3642811b09588ef4, 0xd788dc4fef59972f, 0x0a3a96442083b501, 0x227c1734a268afe3, 0x290e5437196ae2ba,
    0xef952aacba3f4f69, 0x6ccfb906c6257385, 0xf25e271738cbccc9, 0x388bb6059078cc70, 0x7a855b726e341043,
    0x55c948d0443b26c0, 0x4af14082a6d39824, 0x8785dd062f4572d8, 0x2e8450859ed77085, 0xb1e139e09a1e5be6,
    0x6f3d0afd812024e4, 0x3678d3ac8ec5fe3e, 0x468f22a9a2b46aab, 0x7975967539fdfd49, 0x3a3560dc389ae61e,
    0x6c99f906b7b4a36e, 0x2963c8e15bab0750, 0xce24f1b554416568, 0x2d2dbc483475230a, 0x73281531024053e0,
    0x7617116008fdabcd, 0x49f30ef0400c0946, 0x9a323c5ac6c1594e, 0x7384b69c2fe14737, 0x3cd39d0aacf4b123,
    0x1474da2902df8dfd, 0xd4cb5b4555abd17c, 0x4093dd219148d1ea, 0x523ffe88f02e2717, 0x9a859ef4595b5d94,
    0xfba7de89b355e9d7, 0xcbe4a7e7ea74bd42, 0xb40dade54c85679d, 0x3d02faa4c31f0f0e, 0x45af5a43fe4fdb5b,
    0x5f22cb1966e21485, 0x8d2f71c0299d5e78, 0xc311b6c8f3cfb5c5, 0x54fcf08384b17cfc, 0xba4d4267cfdc1b71,
    0x80372f0e350aa920, 0xe46a08f72b35ebf6, 0x8a4185b3c3d5c92f, 0x9f38656156f1e1ed, 0x065d806b601df2e5,
    0x382c64ead6812c9e, 0xdb0eb3157eb4a9a8, 0xbad5f2966684a8fc, 0x99af45facd4bb152, 0x6cbd9df2bcabd086,
    0xe588904644dd4d64, 0x24c4d68e4a7e0cf3, 0xd8e4eed8973a24d5, 0xb52b64ab97f9c29a, 0x0400dcdca40d8ce7,
    0x95aaa38c231ea8ec, 0x2b5fed1a3b68c19e, 0xf0993e0f9e9c3f7f, 0xfaf9230d5e7020c7, 0x8cd41f2333f1277b,
    0x73d2955f527964c5, 0x283480d1dc743465, 0x940dbc679f722e6b, 0x759c7a9d40dc74a0, 0xc80d7af3e01cf9b0,
    0x4831360b9ff3911b, 0x8047119c09416f0e, 0x451f5b2ecb5504fe, 0x7c76297fe49af3b5, 0xd04e4a395c1ea162,
    0x5455de5654e27508, 0x80b026fc61b1664c, 0x39a66d48f9fcbffc, 0x10624b8841b04184, 0xb93412265eedd34e,
    0x659bdbee52978d0a, 0xbab1cb0366d793a9, 0x3d6fc272f1588226, 0x93b07778dae82b37, 0x52afa557f6939375,
    0x7a94983330b73a38, 0x93c1c1ad49228f5b, 0xcd6099a1073d6482, 0xfc0b756aa1c7ddbd, 0x5f4a151c1824c829,
    0x02909a63aef3eefb, 0xc17b52f0dbd89397, 0xa9b8f77befbc5776, 0xc90b5944c85555dd, 0x05ad91c65a2dea33,
    0x581b9be28d61520b, 0x798ca01a3b55be4e, 0xc435d385a46fa6c1, 0x39b884e6fe73365e, 0x826a84511f118d67,
    0x94ce8ff134e42dfe, 0xa4594eaa7c79e0ab, 0x2f5bb7e4d9863113, 0x22328fc1dd34102a, 0x922a4e802855e184,
    0xa6eedba3d3dfb782, 0x0a103d6b864cc380, 0xdf591dbcfa3bc90e, 0x7467d19de5885d90, 0xd437324803a0b122,
    0xaeeaf37ed6f1c0f8, 0x65c19736a87c9488, 0x2e6bd6cd9cbc783d, 0xdcc129a42217657f, 0xfff0a2971827d4c9,
    0xee17ca08aa888c93, 0xad004364a1267202, 0x5a1858dc3a625f09, 0xc872bc0fbf8a5350, 0x4c02cb7a7428a2af,
    0x6ee5107f63a013e8, 0x611b619d3d71ff50, 0xa6f364e2a71e0250, 0x343eaada15f58825, 0x2ba817c5977d86fe,
    0x7c7ab51d36ae0bea, 0xc912a9b717f8ac80, 0x751f6d26cd92a88e, 0xa1c66600137b590b, 0xddde94adae44c793,
    0x3602893cc5fb9465, 0x53fbbac7f4883a94, 0xdc93e87d60d1e284, 0xbc365eda830fbb94, 0x5c0331dabeba9a60,
    0xb9fed85727bd2af9, 0xba6cba470a6781be, 0xbdae4a1de6209566, 0xcd685fa9ed7d2a07, 0x52e3b379219165d6,
    0x03ace6265e255f65, 0xd3ce5e1dc1ebbc98, 0x31a4f7c4765f42b9, 0x1816fcc720964226, 0x5af18278f263302e,
    0xe8408c7fb70f04ef, 0xe6e00de18a92af6e, 0x5ac1d7c694ea9384, 0x5720bbd6e17f27ca, 0xc0bfda4838c0a0cd,
    0x8891314377c5c1ce, 0xf73c59f42e342631, 0xdfba9386cd8c911b, 0x88ae1accf2d3b7d4, 0x37a50df2549e2483,
    0xd467c1da0438a95a, 0x7bf166c31e273fab, 0xd6d2cd348367c5cc, 0xb8a9df4bcc6118d0, 0xe971bf3bf4194b99,
    0x8d0a43cf4a654e5b, 0x0dc1dd89322ca5c3, 0xc48380deabb23363, 0x8c7dd54dac2a0dba, 0x8485a1dc20e7df58,
    0x9d699a56ef536d74, 0x4028fa9730766c68, 0xa4b8cffd806f8fc0, 0x2e8fa0bda00fd155, 0x04497fe00411fceb,
    0xb7e7d53dbed496df, 0x4252b54d01b6dc29, 0xc138a56f904c9df4, 0xa6d0c9dbfed0e668, 0x22b15442fd5b1331,
    0x66e16bb9b14e756f, 0x88f5f86ab2915586, 0x6b650cc7c4f41281, 0x99eee1dcba3dd0ff, 0x60ab7eb50b6129d1,
    0xb2e9fac8b4e3ebf5, 0x219007c91446448c, 0x5a5e6a72dbb9743b, 0x5359fa3041f37150, 0xed75173b3f10caff,
    0x32d7101dde00633c, 0x1a76945cfd96317a, 0x3093c632e27659fd, 0x3f8dc3cec97d5da6, 0x53b8e71d8575298b,
    0x4ad3d0eefdcab589, 0x2aff9b8400084673, 0xaf617981d01788e4, 0xf354bbca2c5ba3d9, 0x4d2c93d55a3a2c3f,
    0x862e1a64dc4b02a0, 0x48bcb6a7536b45a4, 0xa037e8f116b81d54, 0x864dcdc4219bba94, 0x8ded7c57e8e072ca,
    0x6bbbf11e39d0cfef, 0x30d570dc9066e198, 0x379f777159777ff0, 0x3782e9fb1b80e0cf, 0x2443ed5402c19f64,
    0xe623c7945e447698, 0x04b129e49b4af2c6, 0xb74dcdefeeb92bac, 0x22c21f1c5e491cec, 0xd6e38cae64fa32bd,
    0x814e5111cacc2c62, 0x8d518dd58941dd42, 0x66b50953da96c9ac, 0x1a0dc5b10f67d34e, 0xbc9b35c7e74977ff,
    0xd328e25125f9ea56, 0x037d6155f9b04b3b, 0x0eeb5a021eaaf710, 0xe5b8abec5a2bb91e, 0xdddfb7263681a0d7,
    0xdff62b4261429115, 0x7951e16a2dcb212f, 0x1e718209c4997d14, 0xae35cc615a738865, 0x7954d41176968751,
    0x108c0622d305a85e, 0x486e9f2bae384be3, 0xe1c9618f653f390f, 0x89d21e79189f0a90, 0x87666b7b28b2b63a,
    0xa172ac0b970f0c4b, 0xdfa9e4078ca26c5d, 0x0b9aa7a20a2f9136, 0xbbe75a0527d33af5, 0xdb20748f0e880f21,
    0x92d1a944b9c2cc8f, 0xa887d8ad7e48bdde, 0x052c22591e39f932, 0x42c55e93519195e1, 0x8d092e4c56ea4625,
    0xcf1eca0858904f08, 0xbdf11765ea550e2b, 0x35af430b91e2e880, 0x34b1652a53dedfa0, 0xdd5aed9253dd2016,
    0x023e515186981a1b, 0x2688866c6859ce84, 0x07f609787adbdb88, 0xc9bcc491a0ef2f77, 0x5ebff9eb8e86ecd8,
    0x003cbd6a94817f57, 0x27e864f6502f28af, 0xeb23b677ef3cde22, 0xb842f3abc75e5ac0, 0x8ae45b06cb315dd9,
    0xe6019d35966fe4b6, 0x77ed4d7871e65c47, 0xd9dcfc45565e9dd8, 0x3f3a94eb36501335, 0x168cf34f315a74ce,
    0xccdeadeb12c8f742, 0x903a3bc72eb6e730, 0x0d18db17a7b55cf7, 0x027b0eaf0149f8c1, 0x7454ed83e5afbcd2,
    0xf093c14be10b848a, 0x117b8fe0612ba25c, 0xfb1bbbebf1511c32, 0xde3d3f558da62788, 0x81cefe3c56a63e3c,
    0x808edd39739424e9, 0x6a4098b0d1f68a21, 0xc15559a8a6694883, 0x8642811fe238d154, 0x2042b4535724e040,
    0x0147d5b5ba8d06b3, 0x9634aa9e63faa25b, 0x6ca680fd704c29fb, 0x17e7b48abece6d30, 0x518e67c80b2df330,
    0x849c20a7fa51a95b, 0xb6a9ba4c0148c21c, 0xf15346a188bc7c0d, 0xb0caf0e54952c04e, 0xc38f5bc97f2e1cf5,
    0x9bb0ce74f7214846, 0x100ce94fcdf6ba3f, 0x83cfda62b11092af, 0x24b3ecb0580a2e70, 0xd63c66e3609a72d0,
    0xbb019c1df325b71e, 0xa235892634f09da6, 0x8b7bb697a62b28e4, 0x72780ca6cc37a33d, 0x3d4105927c719bfe,
    0x9d6de4efc66af83f, 0x4893b8fd02d58e69, 0x9c7035a28cc43ddf, 0x7a4201af8686cb87, 0xddbe1bb320ff707f,
    0x2a1d3626fd9d5e8c, 0xe471184ff97cd9c0, 0x2a2ed5c026b5bc48, 0xcfa0d9ff71f120e9, 0xc92e7b76eed97a04,
    0xd80d270e93d92cbe, 0xcab996739436a28c, 0x7411c178d6a0cc42, 0x051b2091d03357a3, 0xd64b4405dcf7d7f6,
    0x18f95d4c5c8b3d6d, 0x5e3f16624b834396, 0xf5046252ed5bfe90, 0xad7dce9584a4f865, 0x50cdda5b84ffdb27,
    0xf1246d3505c0da7c, 0x1031ee90dedc79b4, 0x99409b577c081fca, 0x664c7f4f1b4d68b0, 0xd78d714ad16a2d97,
    0x15b1e5b3a106b873, 0x8f1f77af15ec99cf, 0x25b4b0ce175ca086, 0x09002d966e563f5f, 0x53c20718b90a909d,
    0x906509ecbeaa2168, 0xae6c7b25d0282cc9, 0x260f906c0599af1f, 0xe77fad487a24d5a5, 0x0f914efb75b0ea7d,
    0x7584b746e5bbd08b, 0xae95d35c31a18e3f, 0x1560aefb1cf2b912, 0xaff7a6a5d2b223c5, 0xb4461d12225a6c64,
    0x3c572019f2ee97c4, 0x42f349edbae36833, 0x0e05cf63c06ad4f3, 0xaf450ff674bc724a, 0xf48c5b768b6d4e16,
    0xc2678c86dfca1b17, 0xc6b1c2bd370e3d15, 0xaa7e82db85741ca1, 0x8ad4ef691a70c302, 0x685ea34c839108bd,
    0xbc91533a604e9539, 0x96fd0062496ffc8f, 0x7811bd27b34c8e00, 0x5c849f285e09f489, 0x31173ce56f085b52,
    0xee83d46e93993392, 0x8fa7b0500890b4b7, 0xbd70197c26dfc8f9, 0x607ae95a948a095b, 0x19c4a4058799ec55,
    0xc5a9fc21e5df09c0, 0xb84aab0833ab7396, 0x76c6586a1d825cbb, 0xf59bf07bafbce6c0, 0x006cdbc5d26a45a8,
    0xdcc25a9f0621f62d, 0xcc8c4e48a08511ea, 0x83d4b2ef97f02b4f, 0xf7ffdea8960c5e39, 0x2dc0d8ac3c6a6140,
    0x41c7b8500839b853, 0xbbf5cd196fe639a6, 0x3e1079e27b02dffb, 0xa76cec86758c2bb9, 0xb5616951a3210279,
    0x4895fc655659c663, 0x10b487b086474df6, 0x5af2a8975c049bde, 0xbfdefe754304b65e, 0x45b88c628f6ddc35,
    0x529cedfe80894bbb, 0x7893ca4f2876b58b, 0x4fb8edac55faa221, 0x2cb1f57fc830f42b, 0xab2fd4ff09cb15a3,
    0xf8807ae98e7be19b, 0xfdd9ceb0831438e7, 0x02140517e93e594e, 0xf90b46d491978b57, 0x8af75603e59942a8,
    0xf8c3ff97b4a6bbfe, 0x0222dbce5a80eb73, 0x696fc14aaddf5091, 0x002eab000050eaf6, 0x9ce095f19a33943d,
    0x80509f3e3a14154b, 0xef12f29f6a70c823, 0x90845e3b835067aa, 0x58761d7bcbf5bfaf, 0x3642ebf4684689bd,
    0x3ad94a5b0b136d36, 0xe5769f142ec75540, 0x41c63560da077771, 0xa6dec4bf6abd9c76, 0x30f9b73ada41ced5,
    0x8be437bb6bd7f13c, 0x4dd52d0a7130f1da, 0x21dd6c4a48b349bf, 0x4d075b28be81b1ab, 0x2015abdd10265d21,
    0x2e57d1809f4e64da, 0x7c68260b225bc190, 0x4f642e4470619c09, 0x9c0ceb14698f06a0, 0xf549ec5d615c2ca5,
    0x9b3dab7e656689e4, 0x169bd9fd0b0f502c, 0x789e4c2ec3f5e913, 0x54ad454b45213a92, 0x52de32b560a08c4c,
    0xaf256539d19378be, 0x19d0d644bb379c2a, 0xb8ef87180876303e, 0x7a3fd33298b522c7, 0x5c0eda92e2aa0b9b,
    0xe706ec9a4b3f63e5, 0x74793954c032caf6, 0xe48b4617201177d1, 0x230ea19a354026d7, 0xb76ec257f03435c3,
    0x3ae38f8730b58355, 0x0e606e9ed3e4cdbb, 0xee7f1435578a6bfe, 0xc33acb0d48cee739, 0x22581eea220f8529,
    0xf32247ee8044013c, 0xcfbfe9054abe9d9b, 0x62222d068cc9f967, 0x5995fbbf99cd639c, 0xc6cc45300d6c5b46,
    0x1481dbe1357202fc, 0xb7a96a728972b607, 0x99214f30845f2d92, 0xa8ce40ff3821861c, 0xe977cd5cc68e5635,
    0x45b2e656365f11a6, 0x2e1946bfb828464e, 0x6c712927b73539a1, 0x4cf2a263c2ee4064, 0x55d73a52543b8718,
    0xd536ce475c222659, 0x5b4323b0d024f2f4, 0x2be31ce217972835, 0xd2056238a7be6027, 0x2472b58e5c2c68a5,
    0xee0cfa3c3cdbcb3a, 0x2bc3d67c2a9456a6, 0xccec927102ba9f8b, 0x99d4d26634f2c7ee, 0x90cd28b0a49941bc,
    0x4bed3658846db60d, 0xa2aabe2ded518020, 0xede9c05c8179f062, 0x7e3e3c3949ed0d33
};

WesternZobrist::WesternZobrist(const quint64* keys)
    : Zobrist(keys),
      m_pieceIndex(0)
{
}

void WesternZobrist::initialize(int squareCount,
                                int pieceTypeCount)
{
    QMutexLocker locker(&m_mutex);

    if (isInitialized())
        return;

    Zobrist::initialize(squareCount, pieceTypeCount);
}

quint64 WesternZobrist::side() const
{
    return ZobristPlayer;
}

quint64 WesternZobrist::piece(const Piece& piece, int square) const
{
    Q_ASSERT(piece.isValid());
    Q_ASSERT(piece.type() >= 0 && piece.type() < pieceTypeCount());
    Q_ASSERT(square >= 0 && square < squareCount());

    int arwidth = 9 + 2;
    int file = (square % arwidth) - 1;
    int rank = (10 - 1) - ((square / arwidth) - 2);
    int s90 = (9-rank) * 9 + file;
    int s256 = C90[s90];
    int pType = piece.type();
    int side = piece.side();
    int p15 = pType + (side*7);

    Q_ASSERT(p15 < 15);

    return ZobristTable[T15[p15]][s256];
}

} // namespace Chess
